update code for msvc12/clang3.3