Я получил компиляцию ошибок ниже кода.
struct B{
double operator()(){
return 1.0;
}
};
struct A {
auto func() -> decltype(b())
{
return b();
}
B b;
};
Однако, если я реорганизую A
, он компилируется.
gcc 4.8 сказал, что 'b' не был объявлен в этой области.
struct A {
B b;
auto func() -> decltype(b())
{
return b();
}
};
Итак, что не так с первым?