Ist es möglich, Aggregat-Initialisierung innerhalb meiner eigenen Definition der Standard-Ctor aufzurufen?C++ 11 Konstruktor Delegation mit Aggregat-Initialisierung
GCC beschwert "Fehler: Konstruktor Delegierten selbst" mit dem folgenden Code:
struct X {
int x, y, z, p, q, r;
X(): x{}, y{}, z{}, p{}, q{}, r{} { } // cumbersome
//X(): X{} { } // the idea is nice but doesn't compile
};
ich im Moment memset(this, 0, sizeof(*this))
im Ctor Körper bin mit.
Wenn 'X' nicht selbst ein Aggregat sein muss, können Sie' x, y, z ... 'in eine Basisklasse verschieben und diese Basisklasse in einer Elementinitialisierungsliste initialisieren –
@ PiotrSkotnicki Interessante Idee, obwohl meine Kollegen es missbilligen, wenn ich es in einem Produktionscode mache. – nodakai
memset (this, 0, sizeof (* this)) verletzt meinen inneren Frieden ... –