【发布时间】:2012-11-30 14:30:10
【问题描述】:
为了大型项目的需要,我需要 typedef 一个模板类的对象,用参数实例化。
Foo< A, B, C > FooItem(bar1, bar2);
FooItem 是对象,由bar1 和bar2 构造。
有没有办法对这个对象进行类型定义(它必须作为类型重新用于另一个模板)?
【问题讨论】:
-
typedef Foo<A, B, C> my_foo;? (术语 nitpick:你不能 typedef 对象) -
你不能定义一个对象,只能定义一个类型。
typedef Foo< A, B, C > FooType; FooType FooItem (bar1, bar2); -
您可以使用宏,但有什么意义呢? bar1 和 bar2 可能在任何时候都不在范围内,因此它不是一个广泛适用的宏。如果 bar1 和 bar2 是原语,您始终可以将模板子类化并硬编码其中的值。
-
@aleguna 编译器现在告诉我
'FooType FooItem' redeclared as different kind of symbol:/