Referenzen in einer Map speichern

8

Ich habe versucht, ein foo -Objekt in einem std::reference_wrapper zu speichern, aber am Ende habe ich einen Compilerfehler, den ich nicht verstehe.

%Vor%

Der Compilerfehler ist ziemlich lang, aber es läuft darauf hinaus:

%Vor%

Was genau mache ich falsch?

    
qdii 31.03.2015, 08:10
quelle

1 Antwort

6

std::reference_wrapper ist nicht standardkonstruierbar (andernfalls wäre es ein Zeiger).

%Vor%

erstellt, wenn 0 nicht bereits ein Schlüssel in der Map ist, ein neues Objekt des zugeordneten Typs, und dazu benötigt der zugeordnete Typ einen Standardkonstruktor. Wenn der zugeordnete Typ nicht standardkonstruierbar ist, verwenden Sie insert() :

%Vor%

oder emplace() :

%Vor%     
Wintermute 31.03.2015, 08:12
quelle

Tags und Links