在C 中,是否可以为模板类指定一部分参数

In c++, is it possible to specify part of the parameters for a template class

本文关键字:参数 一部分 是否      更新时间:2023-10-16
template<class A=int, class B=float, class C=double> class SomeClass;

是否可以仅指定最后一个参数,例如: SomeClass<C=long long int>

在C 中,是否可以为模板类指定部分参数

是。如果未指定所有模板参数,则未指定的参数将具有默认值(如果指定了默认值(。

可以仅指定最后一个参数

不是这样。(就像非网板参数一样(模板参数是位置。在未指定参数之后不可能指定参数。

您可以使用模板别名解决此问题:

template<class C=double, class A=int, class B=float>
using PermutedSomeClass = SomeClass<A, B, C>;
PermutedSomeClass<long long> // same as SomeClass<int, float, long long>