【发布时间】:2011-11-04 07:34:33
【问题描述】:
我需要一些方法来实现“反向模板别名”。因此,我会使用模板 typedef 来选择要在编译时使用的正确类。我想做以下事情:
typedef ClassA Temp<int>;
typedef ClassB Temp<char>;
ClassA 和 ClassB 不是模板类,但我想通过使用模板来选择正确的类。因此,如果需要 Temp,它实际上会使用 ClassA。在 C++ 中这样的事情甚至可能吗?我尝试了以下方法,但没有成功。
template<>
typedef ClassA Temp<int>;
template<>
typedef ClassB Temp<char>;
我在 GCC 中遇到以下错误
error: template declaration of ‘typedef’
【问题讨论】:
-
你能给出一个你想要实现的代码示例吗?在您的示例中 ClassA 和 ClassB 是具体类型,而不是模板。
-
你不能模板化类型定义。但是有一些方法可以解决这个问题,这取决于你想做什么。