Если определение класса шаблона содержит статическую переменную-член, которая зависит от типа шаблона, я не уверен, что должно быть надежным поведением?
В моем случае желательно поместить определение этого статического члена в тот же файл .h, что и определение класса, поскольку
- Я хочу, чтобы класс был общим для многих типов данных шаблонов, которых я не сейчас знать.
- Мне нужен только один экземпляр статического члена для совместного использования
в моей программе для каждого типа шаблона. (один для всех
MyClass<int>
и один для всехMyClass<double>
и т.д.
Я могу быть самым кратким, говоря, что код, указанный по этой ссылке ведет себя точно так, как я хочу, когда скомпилирован с gcc 4.3. Это поведение соответствует стандарту С++, поэтому я могу полагаться на него при использовании других компиляторов?
Эта ссылка не является моим кодом, но встречный пример, отправленный CodeMedic в обсуждение здесь. Я нашел несколько других дебатов вроде один, но ничего не считаю окончательным.
Я думаю, что компоновщик объединяет множество найденных определений (в примере a.o
и b.o
).
Является ли это обязательным/надежным линкером?