fixed compile on msvc