std::ostream & log()
{
static dependent_static< statics_log> lg;
return lg;
}
int main()
{
constants_and_dependents::initialize();
// this will call log(), and will construct 'lg'
// This will postpone lg's initialization until
// constants_and_dependents::initialize() is called.
//
// But constants_and_dependents::initialize() has
// **already** been called. Therefore, lg's initialization
// will be postponed forever!
// this line will throw!
log() << "test";
};