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