Im Folgenden ein Auszug aus this cppreference Seite über variable templateDie Deklarationen im folgenden Link benötigen nicht den Storage-Class-Specifier `static`. Hab ich recht?
Wenn bei Klassenbereich verwendet, variable Schablone Mitglied Vorlage einer statischen Daten erklärt.
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 } }; };
Die C++ Standard (N4140) sagt der folgende Absatz in §14.1 (1.4):
Eine variable Schablone am Klassenbereich ist ein statisches Datenelement Vorlage.
So scheint es mir, die Erklärungen in dem obigen Link kann static
die Speicherklasse-Angabe nicht benötigen. Hab ich recht?
S.S .: Ich habe gerade meine Untersuchung über Vorlagen begonnen.
Sind Sie sicher, dass Sie wirklich Ihre * Untersuchung an Vorlagen * mit variablen Vorlagen beginnen möchten? Kann es etwas einfacher sein? – SergeyA
@SergeyA Ich weiß, dass der Standard nicht der beste Ort ist, um C++ zu studieren, aber für den Moment mache ich das, d. H. Ich folge dem Standard. –
@Barry Aber [C++ 0z] (http://eel.is/c++draft/temp#1) hat das oben gezeigte Beispiel immer noch nicht korrigiert. –