Si consideri il codice:discrepanza tra clang e g ++ nel trattare con const oggetti
struct Foo
{
int x = 10;
};
int main()
{
const Foo foo;
}
Compila sotto g ++ http://coliru.stacked-crooked.com/a/99bd8006e10b47ef, tuttavia sputa un errore sotto clang ++ http://coliru.stacked-crooked.com/a/93f94f7d9625b579:
error: default initialization of an object of const type
'const Foo' requires a user-provided default constructor
Non sono sicuro chi è giusto qui. Perché abbiamo bisogno di un ctor predefinito poiché eseguiamo l'inizializzazione in classe?
Ecco una grande risposta. http://stackoverflow.com/questions/7411515/why-does-c-require-a-user-provided-default-constructor-to-default-construct-a – Thellimist
Questo è [CWG problema 253] (http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253). –
@Furkan, nota che so perché la regola è così com'è, non capisco perché è applicabile nel mio caso, poiché il mio oggetto è perfettamente ben definito in fase di runtime. – vsoftco