C ++强制实例化模板类的模板构造函数

时间:2014-03-26 02:45:53

标签: c++ templates copy-constructor

说我有一个模板类

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&);,使用相同的确切代码。那太傻了。

0 个答案:

没有答案