Warum gibt decltype (* this) nicht den richtigen Typ zurück?

8

Der folgende Code wurde mit VC ++ Nov 2012 CTP kompiliert. Aber der Compiler gab eine Warnung.

Ich frage mich nur, ob dies ein Fehler von VC ++ Nov 2012 CTP ist.

%Vor%     
xmllmx 28.02.2013, 10:53
quelle

1 Antwort

17

decltype auf einen Ausdruck angewendet, der kein id-Ausdruck ist, gibt Ihnen eine Referenz, also ist decltype(*this) bereits A& , und Sie können const nicht erneut machen. Wenn Sie wirklich decltype verwenden wollten, könnten Sie etwas wie folgt machen:

%Vor%

Oder auch das:

%Vor%

Natürlich ist es viel einfacher, einfach static_cast<A const &>(*this) zu sagen.

    
Kerrek SB 28.02.2013, 11:00
quelle