msvc workaround