我在下面的代码编译时出错。
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();
}
};
那么,第一个有什么问题??