--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -294,7 +294,7 @@ ENDIF(PANO13_FOUND)
 INCLUDE_DIRECTORIES(${PANO_INCLUDE_DIR})
 
 # Check CXX11 compiler
-SET(CMAKE_CXX_STANDARD 11)
+SET(CMAKE_CXX_STANDARD 17)
 SET(CMAKE_CXX_STANDARD_REQUIRED ON)
 # necessary threads lib
 SET(THREADS_PREFER_PTHREAD_FLAG ON)
@@ -320,7 +320,7 @@ check_cxx_source_compiles(
     #if defined _MSC_VER && _MSC_VER <= 1900
     namespace fs = std::tr2::sys;
     #else
-    namespace fs = std::experimental::filesystem;
+    namespace fs = std::filesystem;
     #endif
 
     int main()
--- a/src/hugin_base/hugin_utils/filesystem.h
+++ b/src/hugin_base/hugin_utils/filesystem.h
@@ -40,9 +40,8 @@
         namespace fs = std::tr2::sys;
         #define OVERWRITE_EXISTING std::tr2::sys::copy_options::overwrite_existing
     #else
-        // MSVC 2017 is using experimental namespace
-        namespace fs = std::experimental::filesystem;
-        #define OVERWRITE_EXISTING std::experimental::filesystem::copy_options::overwrite_existing
+        namespace fs = std::filesystem;
+        #define OVERWRITE_EXISTING std::filesystem::copy_options::overwrite_existing
     #endif
 #else
     // use Boost::Filesystem as fallback
--- a/src/deghosting/deghosting.h
+++ b/src/deghosting/deghosting.h
@@ -30,11 +30,7 @@
 #include <vigra/stdimage.hxx>
 #include <vigra/imageinfo.hxx>
 
-#ifdef _MSC_VER
 #define THROWNOIMAGES
-#else
-#define THROWNOIMAGES throw(NoImages)
-#endif
 
 namespace deghosting {
     
