Fix static_initializer:
* Prevents double construction, invalid access
* Unit test works on MSVC and non MSVC