Odliczenie typu zwrotu ze zmienną członka prywatnego
Jak wyjaśniono w tymPytania i odpowiedzi wczoraj, zarówno g ++ 4.8 jak i Clang 3.3 poprawnie narzekają na poniższy kod z błędem takim jak „'b_' nie został zadeklarowany w tym zakresie”
#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();
}
Przesuwanieprivate
sekcja na początku definicji klasy eliminuje błąd i drukuje 0.
Moje pytanie brzmi,czy ten błąd również zniknie w C ++ 14 z dedukcją typu powrotu, abym mógł pominąćdecltype
i miej mojąprivate
sekcja na końcu definicji klasy?
UWAGA: Tofaktycznie działa na podstawie odpowiedzi @JesseGood.