I use poco classloader to dynmic loading .so lib. I found that it use a static struct to register the classname to another static variable.
struct ProxyExec ## UniqueID \
{ \
typedef Derived _derived; \
typedef Base _base; \
ProxyExec ## UniqueID() \
{ \
class_loader::impl::registerPlugin<_derived, _base>(#Derived, #Base); \
} \
}; \
static ProxyExec ## UniqueID g_register_plugin_ ## UniqueID; \
when does the g_register_plugin_ ## UniqueID start executing the constructor, Is it when the .so library is dynamically loaded?