接受方法参数中的任何类模板

时间:2014-04-12 11:37:40

标签: c++ templates

我有AnyClass和AnyMethod。我想做的是转换AnyClass< F>进入AnyClass< T>。

template<typename T>
class AnyClass
{
public:
    static AnyClass<T> AnyMethod(AnyClass<F> obj);
}

例如:

AnyClass<long int> anyObject();
AnyClass<int> anyObject2 = AnyClass<int>::AnyMethod(anyObject);

我正在转换AnyClass的实例&lt; long int&gt;进入AnyClass&lt; int&gt;。我已经知道如何进行转换,但我不知道如何在AnyMethod中接受所有类型的类。

2 个答案:

答案 0 :(得分:1)

您只需要模拟该功能:

template<typename F>
static AnyClass<T> AnyMethod(AnyClass<F> obj);

(您可能希望将obj作为const引用传递。)

答案 1 :(得分:1)

Alan's answer很好,但对于这项工作,我认为构造函数比静态方法更合适:

template<typename T>
class AnyClass
{
public:
    template<typename F>
    AnyClass(AnyClass<F> obj);
}