Wie ordnen Sie ein nicht kopierbares und nicht bewegliches Objekt in std :: map zu?

8

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:

%Vor%

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?

    
LRaiz 13.10.2014, 14:44
quelle

1 Antwort

8

Eine Option ist die Verwendung von std::piecewise_construct :

%Vor%

VC ++ DEMO

    
Piotr Skotnicki 13.10.2014, 16:17
quelle

Tags und Links