如果我有一个模板的容器,我可以用一个typedef
让我查找在编译时类型:的typedef相当于为INT
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的价值吗?这是一个适当的地方使用静态常量?
大answer--发现,因为这只是内部的内部代码(不可访问),我认为静态常量应该罚款。 – user
@Oliver:只要确保你永远不会执行'&value',如果你使用'value'作为一个采用const引用参数的函数的参数,这可能会隐式发生。 –
“现代编译器” - 它需要如何现代化? –