fix c++17 building on windows
diff --git a/build/cmake/DefineCMakeDefaults.cmake b/build/cmake/DefineCMakeDefaults.cmake
index 6714357..2b0cdbb 100644
--- a/build/cmake/DefineCMakeDefaults.cmake
+++ b/build/cmake/DefineCMakeDefaults.cmake
@@ -79,3 +79,14 @@
 if (NOT DEFINED CMAKE_CXX_EXTENSIONS)
   set(CMAKE_CXX_EXTENSIONS OFF)        # use standards compliant language level for portability
 endif()
+
+if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
+  include(CheckCXXCompilerFlag)
+  set(CMAKE_REQUIRED_QUIET ON)
+  check_cxx_compiler_flag("/Zc:__cplusplus" res_var)
+  if (res_var)
+    # Make MSVC reporting correct value for __cplusplus
+    # See https://blogs.msdn.microsoft.com/vcblog/2018/04/09/msvc-now-correctly-reports-__cplusplus/
+    add_compile_options("/Zc:__cplusplus")
+  endif()
+endif()