Rückgabetypabzug mit einer privaten Mitgliedsvariablen
Wie dies erklärt wurdeQ & A gesternbeklagen sich sowohl g ++ 4.8 als auch Clang 3.3 korrekt über den folgenden Code mit einem Fehler wie "'b_' wurde in diesem Bereich nicht deklariert"
#include <iostream>
class Test
{
public:
Test(): b_(0) {}
auto foo() const -> decltype(b_) // just leave out the -> decltype(b_) works with c++1y
{
return b_;
}
private:
int b_;
};
int main()
{
Test t;
std::cout << t.foo();
}
Bewegen derprivate
Abschnitt oben in der Klassendefinition beseitigt den Fehler und gibt 0 aus.
Meine Frage ist,Wird dieser Fehler auch in C ++ 14 mit Rückgabetyp Abzug verschwinden, damit ich das weglassen kanndecltype
und habe meineprivate
Abschnitt am Ende der Klassendefinition?
HINWEIS: Esfunktioniert tatsächlich basierend auf der Antwort von @JesseGood.