我们可以得到以下内容并且有效:
template<std::size_t Size = 10>
fn(){...}
template<typename Size = std::size_t>
fn() {...}
但是怎么做?
template<typename Size = std::size_t=10>
fn() {...}
答案 0 :(得分:7)
模板参数要么是类型,要么是值,不是两者。
您可以使用两个参数
template<typename Size = std::size_t, Size s = 10>
答案 1 :(得分:2)
您可能要求您的参数是std :: integral_constant(或同时提供'type'和'value'成员的某些其他类型:
template<typename Arg = std::integral_constant<size_t, 10>>
struct foo
{ };
但是通常我会说最好使用二参数方法。