lambdas是否应该能够看到本地类
Are lambdas supposed to be able to see local classes?
下面给出了VS2010和VS2012中的错误'one': identifier not found
int main()
{
struct one {};
[](){ return one(); }();
}
稍作调整...
int main()
{
struct one {};
[](){ one uno; return uno; }();
}
VS2010/VS2012 都有编译器在此代码中崩溃。
所以,问题是(忽略编译器崩溃),lambas 应该能够看到本地类吗?
是的,VS 不正确。 从 5.1.2p7:
[...]为了进行名称查找,[...]复合语句是在lambda表达式的上下文中考虑的。
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 检查输入是否不是整数或数字
- 是否可以初始化不可复制类型的成员变量(或基类)
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- 是否可以通过C++扩展强制多个python进程共享同一内存
- 此代码是否违反一个定义规则
- 是否需要删除包含对象的"pair"?
- 是否可以从int转换为enum类类型
- 无论条件是否为true,if总是在c++中执行
- 如何找到大小'x'数组是否完全填充,在C++?
- 检查值是否在集合p1和p2中,但不在p3中
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- lambdas的可继承性是否由标准保证
- lambdas是否应该能够看到本地类
- 在内存使用方面,templates+functors/lambdas是否次优
- 自lambdas进入C++以来,“回调”接口是否已过时
- 非本地C++11 lambdas是否存在于匿名命名空间中
- 是否可能允许一个std::函数类型接受具有不同签名的lambdas ?
- c++11 lambdas是否捕获它们不捕获的变量't使用