class A { static int foo () {} // ok static int x; // <--- needed to be defined separately in .cpp file }; Я не вижу необходимости A::xопределять отдельно в файле .cpp (или тот же файл для шаблонов). Почему нельзя A::xобъявить и определить одновременно? Было ли это запрещено по историческим...