template<class A=int, class B=float, class C=double> class SomeClass;
Run Code Online (Sandbox Code Playgroud)
是否可以仅使用以下内容指定最后一个参数: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>
Run Code Online (Sandbox Code Playgroud)