typedef带参数的模板化类

时间:2012-11-30 14:30:10

标签: c++ templates typedef

对于大型项目的需求,我需要输入一个模板化对象的对象,并使用参数进行实例化。

Foo< A, B, C > FooItem(bar1, bar2);

FooItem是使用bar1bar2构建的对象。

有没有办法输入这个对象(它必须作为一种类型重新用于另一个模板)?

2 个答案:

答案 0 :(得分:2)

您无法输入对象。您可以输入类型。 (线索在名称中!)

对于对象,如果需要较短的句柄,则需要引用

typedef Foo<A, B, C> FooABC;

FooABC FooItem(bar1, bar2);

auto & f = FooItem;    // 'f' is a FooABC &

auto copy_of_f = f;    // this is a FooABC

答案 1 :(得分:0)

构建新课程怎么样?

template <typename T1, typename T2, typename T3>
struct Foo1 : public Foo<T1,T2,T3>
{
    Foo1()
    : Foo<T1,T2,T3>(bar1, bar2)   //bar1, bar2 - global or static objects?
    {}
// ......       
};

Foo1<int, char, double> a;
//....
typedef Foo1<A,B,C>  FooItem;
FooItem b;