Только целые статические неагрегированные члены могут быть инициализированы внутри класса.Все остальные статические члены (совокупные или иные) должны быть инициализированы вне класса.
//tag.h
struct tag
{
static const int foo[3]; //aggregate
static const bar baz; //aggregate
static const std::string s; //non-aggregate (non-integral type)
static const int x = 10; //ok : non-aggregate (integral type)
};
//tag.cpp
const int tag::foo[3] = { 1, 2, 3 }; //ok
const bar tag::baz = { 0 }; //ok
const std::string s = "example"; //ok
const int tag::x; //definition - if you want to take its address