以下是关于变量模板
的this cppreference页面的摘录在类范围内使用时,变量模板声明静态数据 会员模板。
using namespace std::literals; struct matrix_constants { template<class T> using pauli = hermitian_matrix<T, 2>; // alias template template<class T> // static data member template static constexpr pauli<T> sigma1 = { { 0, 1 }, { 1, 0 } }; template<class T> static constexpr pauli<T> sigma2 = { { 0, -1i }, { 1i, 0 } }; template<class T> static constexpr pauli<T> sigma3 = { { 1, 0 }, { 0, -1 } }; };
C ++标准(N4140)在第14.1(1.4)段中说明了以下内容:
类范围内的变量模板是静态数据成员模板。
因此,在我看来,上面链接中的声明不需要存储类说明符static
。我是对的吗?
P.S。:我刚刚开始调查模板。
答案 0 :(得分:1)
虽然我仍然认为您没有选择正确的课程来学习模板,但我将回答直接问题。
标准(和cppreference)的措辞意味着模板变量在成为类成员时应定义为static
。这是开发人员的要求。