有这样一个带有两个模板参数的模板类:
template <class T1, class T2>
class A
{
public:
void f()
{
t1 = t2.get();
}
T1 result() {return t1;}
private:
T1 t1;
T2 t2;
};
是否可以为一个模板参数编写此类的特化:如下所示:
template<class T1>
class A<T1>
{
void f() {/*do nothing*/}
T1 result() {return t1;}
public:
T1 t1;
};
但在这种形式下它不起作用,编译器需要两个参数。
你可以这样做:
template<class T1>
class A<T1, void>
{
void f() {/*do nothing*/}
T1 result() {return t1;}
public:
T1 t1;
};
但我不喜欢使用 write void
:
A<int, void> a;
我想简单写一下
A<int> a;
但这个选项不起作用?
并打电话