Согласно этому вопросу ответ :
According to the standards you must define i
(который является статическим постоянным членом) outside of the class definition
... но если я сделаю это для статических переменных-членов const класса шаблона, которые сами являются общими, то я получу ошибки компоновки (аналогично получению ошибок компоновки, если код шаблона находится в отдельном модуле компиляции).Если я определю их в заголовке, ошибки компоновки исчезнут (я спросил, нормально ли было их определять generic
, в первую очередь в этот вопрос ).
Безопасно ли то, что я делаю? Ниже приведено одно из определений статической переменной-члена const, которая находится в заголовке.
template<typename T, unsigned int T_Size>
const Vector<T, T_Size> Vector<T, T_Size>::Zero = Vector<T, T_Size>(0);