Sun*_*min 12 c++ decltype c++11
我在代码下面编译错误.
struct B{
double operator()(){
return 1.0;
}
};
struct A {
auto func() -> decltype(b())
{
return b();
}
B b;
};
Run Code Online (Sandbox Code Playgroud)
但是,如果我重组A
,它会编译.
gcc 4.8表示'b'未在此范围内声明.
struct A {
B b;
auto func() -> decltype(b())
{
return b();
}
};
Run Code Online (Sandbox Code Playgroud)
那么,第一个出了什么问题?
And*_*owl 11
有效吗?
你的最后一个例子是格式良好的,而第一个例子不是(所以GCC是正确的).
关于非限定名称查找的第3.4.1/7段规定:
在
X
成员函数体外的类定义中使用的名称,非静态数据成员的默认参数,大括号或等于初始化程序,或嵌套类定义应使用以下方式之一声明:- 在课堂上使用之前
X
或者是X(10.2)的基类成员,或者- [...]
以下是其他不适用于您的情况.
归档时间: |
|
查看次数: |
2164 次 |
最近记录: |