Недавно я столкнулся с проблемой, описанной в странных неопределенных символов статические константы внутри структуры/класса, и я пытаюсь привести свой код в соответствие, добавляя определения в соответствующие файлы .cpp для всех членов моего класса static const, а не только тех, которые вызывали ошибки компоновщика.
В тех случаях, когда константа используется в нескольких единицах компиляции, я получаю несколько ошибок определения, даже если определение находится только в одной из единиц компиляции.
Перемещение инициализаторов в определения предотвращает ошибки, но я бы не стал этого делать.
Что бы это ни стоило, хотя я сейчас работаю в Visual Studio, этот код должен быть построен на нескольких платформах.