
Am 11.03.2013 13:27, schrieb Stefan Strasser:
Am 11.03.2013 12:51, schrieb Andrey Semashev:
then it's an implemention detail, I'd suggest making all the functions of logging::core static, or make logging::core a namespace. if you wanna add the feature you've mentioned later on, you could for example ask the user to construct and hold a core::log_during_termination object, which - again as an implementation detail - holds a shared_ptr to the internal core.
This won't work because every static function would have to obtain the pointer to the core which may be invalidated because its global destructor has been invoked already.
I'm not suggesting any changes to the internals, only to the interface. Maybe the following code makes it a little clearer:
was your point that the destructor A::~A in my code can't use the static functions? that's correct, but it can't use the current "static core::get()" either. log_during_termination can provide an interface for this corner case.