繁体   English   中英

C ++ 14结合了通用lambda和变量模板

[英]C++14 combining generic lambdas and variable templates

我了解泛型lambda ,也了解变量模板,但是,这是做什么的呢? 甚至允许吗?

template<typename T>
auto f = [](auto a, T b){ /**/ };

如果允许,可以按预期使用吗? 也就是说,作为f<type>(var_a, var_b)

变量模板必须声明为constexpr Lambda不能在constant-expression中发生,因此不允许初始化,并且其operator() 未被声明为constexpr ,因此不允许对其进行调用。

总之,这在当前的C ++ 14草案中是错误的。

注意:奇怪的是,即使lambda-expression不能在constant-expression中出现 ,但似乎lambda的闭包类型可能具有constexpr copy / move构造函数。

该代码现在在C ++ 14的当前草案中是合法的,并且可以使用clang 3.5 trunk进行编译

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM