下面链接中的声明不需要存储类说明符`static`。我对么?

时间:2016-04-08 20:12:26

标签: c++ templates static c++14

以下是关于变量模板

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。:我刚刚开始调查模板。

1 个答案:

答案 0 :(得分:1)

虽然我仍然认为您没有选择正确的课程来学习模板,但我将回答直接问题。

标准(和cppreference)的措辞意味着模板变量在成为类成员时应定义为static。这是开发人员的要求。