towards MSVC-friendly C++