我了解泛型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无法在常量表达式中出现,但似乎lambda的闭包类型可能具有constexpr
复制/移动构造函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句