den Code vor:Diskrepanz zwischen Klirren und g ++ mit konst Umgang Objekte
struct Foo
{
int x = 10;
};
int main()
{
const Foo foo;
}
unter g kompiliert ++ http://coliru.stacked-crooked.com/a/99bd8006e10b47ef jedoch spuckt einen Fehler unter Klirren ++ http://coliru.stacked-crooked.com/a/93f94f7d9625b579:
error: default initialization of an object of const type
'const Foo' requires a user-provided default constructor
Ich bin nicht sicher, wer genau hier. Warum brauchen wir einen Standard-Ctor, da wir eine Initialisierung in der Klasse durchführen?
Hier ist eine gute Antwort. http://stackoverflow.com/questions/7411515/why-does-c-require-a-user-provided-default-constructor-to-default-construct-a – Thellimist
Das ist [CWG Ausgabe 253] (http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253). –
@Furkan, beachten Sie, dass ich weiß, warum die Regel so ist, wie ich es verstehe, ich verstehe nicht, warum es in meinem Fall anwendbar ist, da mein Objekt zur Laufzeit perfekt definiert ist. – vsoftco