avoid non-standard behavior of MSVC