You still need to worry about the static initialization fiasco. Let's say you have a.cpp and b.cpp. In a.cpp you have
double const Thing::default_blarg = 0;
Now in a.cpp, any call runafter this point will have an initialized default value, and you're good to go. Unfortunately, in b.cpp, you have another static object that instantiates Thingand calls run.
, . b.cpp , default_blarg , undefined.
,
. , , default_blarg (, , ), .