【发布时间】:2018-11-04 06:41:51
【问题描述】:
这就是我想要完成的工作(但失败了)。这个想法是count<N> 必须等于N。这是一个更复杂计算的简化案例,不要介意这段代码明显的愚蠢。
template <>
constexpr size_t count<0> = 0;
template <auto N>
constexpr size_t count = 1 + count<static_cast<size_t>(N) - 1>;
int main()
{
return count<1>;
}
无法编译:
<source>:5:23: error: expected initializer before '<' token
constexpr size_t count<0> = 0;
^
如果我用专业化交换一般情况,它也不会编译。它甚至可以使用可变模板吗?
【问题讨论】: