Ich habe ein Objekt, das ich so beschränken möchte, dass es nur innerhalb von std::map
zugewiesen wird. Hier ist der vereinfachte Code:
Um es auf Mac mit CLang kompilieren zu können, musste ich eine mit Sternchen markierte Zeile hinzufügen, die den Standard-Move-Konstruktor anfordert. Diese Zeile verursacht jedoch C2610-Fehler beim Kompilieren in Windows Visual Studio. Sieht aus wie VS2013 C ++ 11 Nichteinhaltung beinhaltet die Unfähigkeit, Standard-Move-Konstruktoren zu generieren. Gibt es eine andere Möglichkeit für mich, ein Objekt innerhalb der Standardzuordnung zuzuweisen, das plattformübergreifend kompiliert wird, oder muss ich meinen eigenen Move-Konstruktor implementieren?
Eine Option ist die Verwendung von std::piecewise_construct
:
Tags und Links c++ c++11 move-semantics stdmap