说我有一个模板类
template<typename T>
class Foo {
template<typename U>
Foo(const Foo<U> &foo) {
...
}
}
显然,Foo<T>(const Foo<T>&)
是该模板成员的一个实例,但由于某种原因,C ++选择使用隐式复制构造函数,而不是从模板中实例化此复制构造函数。
有没有办法强制从模板中实例化复制构造函数?
通常,类似
template<> template<> Foo<int>::Foo(const Foo<int>&);
如果我想要一个特定的实例,会工作,但我希望实例化的每个Foo<T>
也可以实例化Foo(const Foo<T>&)
。
我怎样才能做到这一点?
当然没有单独写出Foo::Foo(const Foo&);
,使用相同的确切代码。那太傻了。