Ausnahmen verwenden den statischen Typ eines Objekts copy-initialize das geworfene Objekt. Zum Beispiel:Warum müssen geworfene Objekte kopieninitialisiert werden?
struct foo
{
foo() = default;
foo(const foo&) = delete;
};
int main()
{
throw foo();
}
Clang++ --std=c++14
beklagt, dass das explizit gelöscht Copykonstruktor nicht verwendet werden kann. Warum kann nicht stattdessen move-initialisiert werden?
Ich kann es nicht mehr löschen, weil es Antworten hat, aber ich stimme, wegen eines "einfachen typografischen Fehlers" als Off-Topic zu schließen. Mein Problem war nicht so trivial wie dieses, aber ich habe eindeutig vergessen, einen Move-Konstruktor zu erstellen. – zneak
Dank Ihrer Frage habe ich etwas gelernt. Bitte stimmen Sie nicht ab, um es zu schließen, und überhaupt nicht löschen Sie es nicht !! –