繁体   English   中英

在C ++ 14中使用auto实现非类型模板参数

[英]Achieving non-type template parameters with auto in C++14

有没有办法可以模仿C ++ 14 中非类型模板参数自动推导 类似于如何使用模板化函子模拟C ++ 11中C ++ 14 lambda中的无约束参数?

有点。 您当然可以具有非类型模板参数,但是您需要指定类型。 常见的成语是:

template <class T, T Value>
struct X;

但是您不能使用它实例化诸如X<3>的东西。 您能做的最好的事情就是引入一个宏来为您提取类型:

#define DECL(expr) decltype(expr), (expr)
X<DECL(3)> x;

对于3来说,这显然是愚蠢的,但是当您想要提供诸如函数指针之类的非类型模板参数时,它确实有所帮助。

暂无
暂无

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

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