Als «c++» getaggte Fragen

8
Kann ein Compiler die Implementierung eines implizit deklarierten virtuellen Destruktors in einer einzelnen separaten Übersetzungseinheit platzieren?

Der folgende Code kompiliert und verknüpft mit Visual Studio(sowohl 2017 als auch 2019 mit /permissive-), kompiliert jedoch nicht mit entweder gccoder clang. foo.h #include <memory> struct Base { virtual ~Base() = default; // (1) }; struct Foo : public Base { Foo(); // (2) struct...

8
Struktur mit {0} initialisieren

Ich debugge einen Code, der im Wesentlichen mit diesem identisch ist: struct Foo { int a; int b; }; struct Bar { Bar() {} Foo foo{0}; }; Wenn ich eine Instanz von mache Bar, scheint es wie beides aund bwird auf Null initialisiert. Ist das garantiert? Wo finde ich das in der

8
Vorlagen-Disambiguator für abhängige Namen

Beim Kompilieren des folgenden Beispiels ist das folgende Problem aufgetreten: template <int N> class Matrix { public: template <int Idx> int head() { return Idx; } }; template <typename T> class Test { static constexpr int RayDim = 3; public: int func() const {...

8
Absturz beim Löschen durch Destruktor

Im folgenden Programm beabsichtige ich, char* lineInhalte von einem Objekt auf ein anderes durch zu kopieren strcpy. Wenn das Programm jedoch endet, obj2funktioniert der Destruktor von einwandfrei, der objAbsturz jedoch nicht. gdb zeigt unterschiedliche Adressen linefür beide Objekte an. class...