Warum kann ein Enum-Wert nicht als Rvalue verwendet werden? [geschlossen]

9

Hinweis:

Das Problem wurde gelöst. Es ist ein Fehler von Clion 1.2.4 , aber nicht der Compiler . Ich kann die Anwendung selbst dann kompilieren, wenn das Static-Analysis-Tool von Clion mir einen Fehler meldet.

Ich benutze Clion 1.2.4 , um ein C++ -Projekt basierend auf C++11 zu erstellen, wenn ich versuche, make_shared function zu verwenden, um ein shared_ptr -Objekt wie folgt zu erstellen:

%Vor%

wobei Type eine Struktur mit einem Konstruktor wie folgt ist:

%Vor%

und der Parameter des Konstruktors ist enum .

Aber Clion gib mir einen Fehler :

%Vor%

Ich möchte also wissen, ob ein Aufzählungswert als R-Wert verwendet werden kann, um eine Funktion aufzurufen? Und warum.

Und wenn ich so tue:

%Vor%

Clion zeigt den Fehler nicht an. Was macht die Funktion move ? Und ist es richtig, dass ein konstanter Wert als der tatsächliche Parameter von move function verwendet wird.

Update 2016-01-31:

Danke @ NathanOliver für die Erinnerung. Ein einfaches Beispiel finden Sie hier (Erstellen von NathanOliver).

Das folgende ist das Ergebnis des Befehls gcc -v :

%Vor%     
qife 29.01.2016, 13:26
quelle

0 Antworten

Tags und Links