Ses*_*ing 7 c++ lambda language-lawyer c++11
我尝试使用混合结果编译以下C++ 11代码.
struct NoTemplate {
static constexpr auto (*foo)() = false ? +[]{} : nullptr;
};
NoTemplate no_inst;
template<typename>
struct YesTemplate {
static constexpr auto (*foo)() = false ? +[]{} : nullptr;
};
YesTemplate<float> yes_inst;
Run Code Online (Sandbox Code Playgroud)
NoTemplate成功编译; 给error: a lambda expression may not appear inside of a constant expression上YesTemplate.什么是正确的结果?我看到一些标准语言暗示非常量表达式应该在常量表达式中的短路运算符的假分支中可以正常,但IANALL.
| 归档时间: |
|
| 查看次数: |
224 次 |
| 最近记录: |