【发布时间】:2012-10-20 03:51:21
【问题描述】:
如果我有一个模板容器,我可以使用typedef 让我在编译时查找类型:
template <typename T>
struct MyList {
typedef T Type;
T get_front() const;
// ...
};
MyList<char> char_list;
MyList<char>::Type front = char_list.get_front();
在这种情况下,您可以改为声明 char front = char_list.get_front();,但有时这可能很有用(例如,包含其他模板类的模板类)。
在我的例子中,模板没有指定类型名,而是指定了一个 int(实际上是 std::size_t):
template <std::size_t N>
struct MyClass {
// ...
};
是否有一个 typedef 等效项,我可以在类中声明它允许我在类之外获取值 N?这是使用静态常量的合适位置吗?
【问题讨论】: