diff --git a/CMakeLists.txt b/CMakeLists.txt
index 208b4789ae887047bdd22394efca62b025ddc4f8..07fc0aa77c5ef69d8bb5899db471d5837cc61baa 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -62,8 +62,8 @@ endif()
 
 # check if the compiler is good enough
 if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
-   # GCC 5.0 is the first release with full C++11 support (due to libstdc++)
-   # https://gcc.gnu.org/gcc-5/changes.html
+   # GCC 5.0 is the first release with full C++11 support (due to libstdc++) as
+   # well as full C++14 support: https://gcc.gnu.org/gcc-5/changes.html
    if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "5.0")
       message(FATAL_ERROR "Insufficient GCC version")
    endif()
@@ -74,8 +74,13 @@ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
    endif()
 endif()
 
+# set C++ standard
+set( CMAKE_CXX_STANDARD 14 )
+set( CMAKE_CXX_STANDARD_REQUIRED ON )
+set( CMAKE_CXX_EXTENSIONS OFF )
+
 # set Debug/Release options
-set( CMAKE_CXX_FLAGS "-std=c++11 -pthread -Wall -Wno-unused-local-typedefs -Wno-unused-variable" )
+set( CMAKE_CXX_FLAGS "-pthread -Wall -Wno-unused-local-typedefs -Wno-unused-variable" )
 set( CMAKE_CXX_FLAGS_DEBUG "-g" )
 set( CMAKE_CXX_FLAGS_RELEASE "-O3 -march=native -mtune=native -DNDEBUG" )
 #set( CMAKE_CXX_FLAGS_RELEASE "-O3 -march=native -mtune=native -DNDEBUG -ftree-vectorizer-verbose=1 -ftree-vectorize -fopt-info-vec-missed -funroll-loops" )