有没有办法可以模仿C ++ 14中的auto deduction in non type template parameters?类似于如何使用模板化函数在C ++ 11中模仿C ++ 14 lambdas中的无约束参数?
答案 0 :(得分:1)
排序。当然,您可以使用非类型模板参数,但需要指定类型。常见的习语是:
template <class T, T Value>
struct X;
但是你不能用X<3>
来实例化它。你能做的最好的事情是引入一个宏来为你提取类型:
#define DECL(expr) decltype(expr), (expr)
X<DECL(3)> x;
3
对于for (var i = 1; i <= 10; i++) {
wait('something', i, 10);
}
function wait(msg, i, length){
setTimeout(function ()
{
console.log(msg) ;
}, (i * 3000));
}
来说显然是愚蠢的,但是当你想提供类似函数指针作为非类型模板参数的东西时,确实会有所帮助。