В качестве дополнения к этому вопросу, что здесь происходит:
#include <string>
using namespace std;
struct A {
string s;
};
int main() {
A a = {0};
}
Очевидно, вы не можете установить std::string в ноль. Может ли кто-нибудь дать объяснение (с ссылками на стандарт С++, пожалуйста) о том, что на самом деле должно произойти здесь? А затем объясните, например):
int main() {
A a = {42};
}
Являются ли эти из них четкими?
Еще раз смущающий вопрос для меня - я всегда даю конструкторы своих структур, поэтому проблема никогда не возникала раньше.