[temp.static] (original) (raw)
13 Templates [temp]
13.7 Template declarations [temp.decls]
13.7.1 Class templates [temp.class]
13.7.1.4 Static data members of class templates [temp.static]
A definition for a static data member or static data member template may be provided in a namespace scope enclosing the definition of the static member's class template.
[ Example
:
template class X { static T s; }; template T X::s = 0;
struct limits { template static const T min; // declaration };
template const T limits::min = { }; // definition
— end example
]
An explicit specialization of a static data member declared as an array of unknown bound can have a different bound from its definition, if any.
[ Example
:
template struct A { static int i[]; }; template int A::i[4]; // 4 elements template <> int A::i[] = { 1 }; // OK: 1 element
— end example
]