在哪里定义模板类的静态常量成员变量
Where to define static const member variables of a template class
根据这个问题的答案:
According to the standards you must define i
(它是一个静态常量成员)outside of the class definition
但是,如果我对模板类的静态const成员变量这样做,它们本身就是泛型的,那么我就会得到链接错误(类似于如果模板代码在单独的编译单元中,则会得到链接错误)。如果我在标题中定义它们,链接错误就会消失(在这个问题中,我首先问以generic
的方式定义它们是否可以)。
我正在做的事情安全吗下面是标头中静态常量成员变量的定义之一。
template<typename T, unsigned int T_Size>
const Vector<T, T_Size> Vector<T, T_Size>::Zero = Vector<T, T_Size>(0);
换句话说,该规则与类模板的成员函数相同。
由于每个翻译单元都需要完整的模板定义,是的,这就是方法。
相关文章:
- 私有类型的静态常量成员
- 分离一个静态常量 std::thread?
- 从另一个静态常量数组初始化静态常量数组(只需少量计算)
- 我可以在运行时重新定义在 OpenCascade/OCCT 标头中定义的 c++ 静态常量吗?
- 如何为静态常量模板化专用整数值分配存储
- 使用什么代替"静态常量 TCHAR *"
- C++ 模板中的静态常量初始化顺序
- 如何在编译时解析静态常量 std::string?
- 关于静态常量数据模因的声明和定义的混淆
- 将 static_cast<int>(-15) 分配给静态常量字符类型变量
- 为什么在第二类中使用静态常量会在第一类中给出编译器错误?
- 静态常量与常量局部变量,哪一个性能更好
- 如何在模板类中设置静态常量变量
- public:静态常量字符串声明/初始化问题
- 有没有办法声明一个公共静态常量,该常量将使用 constexpr 在源文件中定义(有什么区别)?
- 对静态常量积分类型的未定义引用
- 全局变量中的静态常量与常量
- c++ 类中的静态常量变量和常量变量在存储方面是否有区别
- 避免在静态常量类上定义但不使用
- 指向静态常量对象的共享指针?