diff --git a/wmake/rules/General/Clang/c++ b/wmake/rules/General/Clang/c++
index a476d44f905188507381d823d72f9017e4ee2c45..dd0c34533d5eed5a922df8ede5eeef1f583f112e 100644
--- a/wmake/rules/General/Clang/c++
+++ b/wmake/rules/General/Clang/c++
@@ -3,7 +3,7 @@
 #------------------------------------------------------------------------------
 SUFFIXES   += .C .cc .cpp .cxx
 
-CC         := clang++$(COMPILER_VERSION) -std=c++14
+CC         := clang++$(COMPILER_VERSION) -std=c++17
 
 c++ARCH    :=
 c++DBUG    :=
diff --git a/wmake/rules/General/Gcc/c++ b/wmake/rules/General/Gcc/c++
index d87479014fc87447907c9160ae7bedaa09fbe1f7..55d30230c2b078266bcc182c25b22521498dd5d9 100644
--- a/wmake/rules/General/Gcc/c++
+++ b/wmake/rules/General/Gcc/c++
@@ -6,7 +6,7 @@
 #------------------------------------------------------------------------------
 SUFFIXES   += .C .cc .cpp .cxx
 
-CC         := g++$(COMPILER_VERSION) -std=c++14
+CC         := g++$(COMPILER_VERSION) -std=c++17
 
 c++ARCH    :=
 c++DBUG    :=
diff --git a/wmake/rules/General/Icc/c++ b/wmake/rules/General/Icc/c++
index d6448eaec58e34465cf6d98a471032cc84b61612..ed19b4cd9b69dd90088f8affd575609108dd3e26 100644
--- a/wmake/rules/General/Icc/c++
+++ b/wmake/rules/General/Icc/c++
@@ -3,7 +3,7 @@
 #------------------------------------------------------------------------------
 SUFFIXES   += .C .cc .cpp .cxx
 
-CC         := icpc$(COMPILER_VERSION) -std=c++14
+CC         := icpc$(COMPILER_VERSION) -std=c++17
 
 c++ARCH    :=
 c++DBUG    :=
diff --git a/wmake/rules/General/Icx/c++ b/wmake/rules/General/Icx/c++
index d8c51bc12c78dee40244a6b9db9183272a558ec6..922e184d1e5fae9421bf5040f5fcc4e30d4f49da 100644
--- a/wmake/rules/General/Icx/c++
+++ b/wmake/rules/General/Icx/c++
@@ -3,7 +3,7 @@
 #------------------------------------------------------------------------------
 SUFFIXES   += .C .cc .cpp .cxx
 
-CC         := icpx$(COMPILER_VERSION) -std=c++14
+CC         := icpx$(COMPILER_VERSION) -std=c++17
 
 c++ARCH    :=
 c++DBUG    :=
diff --git a/wmake/rules/General/Nvidia/c++ b/wmake/rules/General/Nvidia/c++
index 1724ede82b6c28993b6ed363ee4c82b2e521d389..c7b0d2f9ffea5fbd44321b1772d0e3f094dc04f5 100644
--- a/wmake/rules/General/Nvidia/c++
+++ b/wmake/rules/General/Nvidia/c++
@@ -3,7 +3,7 @@
 #------------------------------------------------------------------------------
 SUFFIXES   += .C .cc .cpp .cxx
 
-CC         := nvc++$(COMPILER_VERSION) -std=c++14
+CC         := nvc++$(COMPILER_VERSION) -std=c++17
 
 c++ARCH    :=
 c++DBUG    :=
diff --git a/wmake/rules/General/cuda b/wmake/rules/General/cuda
index f6dbdeaedccf2b9aedc9770b01382e1b623caeea..d71fa4c8f4eba9e54a60e23346fca2bf5d32e9dd 100644
--- a/wmake/rules/General/cuda
+++ b/wmake/rules/General/cuda
@@ -7,7 +7,7 @@ ifeq (,$(strip $(NVARCH)))
     NVARCH  = 70
 endif
 
-NVCC        = nvcc -std=c++14 --compiler-options='-fPIC'
+NVCC        = nvcc -std=c++17 --compiler-options='-fPIC'
 
 cuARCH      = -arch=sm_$(NVARCH)
 cuOPT       = -O3
diff --git a/wmake/rules/darwin64Clang/c++ b/wmake/rules/darwin64Clang/c++
index 01158bcb0f5abef5ea67290c68d82a6ae867fb99..77936573448996dd2f663242a53c0b6d709e6d6f 100644
--- a/wmake/rules/darwin64Clang/c++
+++ b/wmake/rules/darwin64Clang/c++
@@ -2,7 +2,7 @@
 include $(GENERAL_RULES)/Clang/c++
 
 ifneq (,$(findstring +xcrun,$(WM_COMPILE_CONTROL)))
-CC         := xcrun c++ -std=c++14
+CC         := xcrun c++ -std=c++17
 endif
 
 c++ARCH    := -m64 -pthread -ftrapping-math
diff --git a/wmake/rules/linux64Clang/c++Scan b/wmake/rules/linux64Clang/c++Scan
index ae3f47e86f365327df05ff81994f0319dcbbe5c9..11a1a08f0ab1c67b889dd33c04de10c494435264 100644
--- a/wmake/rules/linux64Clang/c++Scan
+++ b/wmake/rules/linux64Clang/c++Scan
@@ -5,6 +5,6 @@
 sinclude $(GENERAL_RULES)/common/c++Opt
 
 cxx_compiler := $(shell which clang++)
-CC         := $(shell echo "$(cxx_compiler)" | sed -e 's@/bin/[^/]*@/libexec/c++-analyzer@') -std=c++14 -m64
+CC         := $(shell echo "$(cxx_compiler)" | sed -e 's@/bin/[^/]*@/libexec/c++-analyzer@') -std=c++17 -m64
 
 #------------------------------------------------------------------------------
diff --git a/wmake/rules/linux64Cray/c++ b/wmake/rules/linux64Cray/c++
index f1ff85b8ae356c5dd49d76d4145d8eb19dea6456..059a292a3ecd15f95d58ea33be6525b0dee53d03 100644
--- a/wmake/rules/linux64Cray/c++
+++ b/wmake/rules/linux64Cray/c++
@@ -1,9 +1,9 @@
 #------------------------------------------------------------------------------
-# Cray compiler - gcc variant/wrapper. New enough to support c++14
+# Cray compiler - gcc variant/wrapper. New enough to support c++17
 #------------------------------------------------------------------------------
 include $(GENERAL_RULES)/Gcc/c++
 
-CC         := CC -std=c++14
+CC         := CC -std=c++17
 c++ARCH    := -m64 -pthread
 
 ifneq (,$(strip $(WM_COMPILE_OPTION)))
diff --git a/wmake/rules/linux64Mingw/c++ b/wmake/rules/linux64Mingw/c++
index 8223990a8bbf99221987dc4b94fb601632f49228..457dc039780ff0d7631c86e86c7ba094eee390f9 100644
--- a/wmake/rules/linux64Mingw/c++
+++ b/wmake/rules/linux64Mingw/c++
@@ -1,10 +1,10 @@
 #------------------------------------------------------------------------------
-# mingw is gcc, but new enough to support c++14
-# NB: gnu++14 (not c++14) to ensure __STRICT_ANSI__ is not defined
+# mingw is gcc, but new enough to support c++17
+# NB: gnu++17 (not c++17) to ensure __STRICT_ANSI__ is not defined
 #------------------------------------------------------------------------------
 include $(GENERAL_RULES)/Gcc/c++
 
-CC         := x86_64-w64-mingw32-g++ -std=gnu++14
+CC         := x86_64-w64-mingw32-g++ -std=gnu++17
 c++ARCH    := -m64 -pthread
 
 ifneq (,$(strip $(WM_COMPILE_OPTION)))
diff --git a/wmake/rules/linuxARM64Arm/c++ b/wmake/rules/linuxARM64Arm/c++
index cc73b1e2d8b1377c6318b2c1fdc0431f46e85ef5..430762435ba0dcc35e5ee39b68b0beabf2c83fed 100644
--- a/wmake/rules/linuxARM64Arm/c++
+++ b/wmake/rules/linuxARM64Arm/c++
@@ -3,7 +3,7 @@
 #------------------------------------------------------------------------------
 include $(GENERAL_RULES)/Clang/c++
 
-CC         := armclang++$(COMPILER_VERSION) -std=c++14
+CC         := armclang++$(COMPILER_VERSION) -std=c++17
 c++ARCH    := -mcpu=native -pthread
 
 ifneq (,$(strip $(WM_COMPILE_OPTION)))
diff --git a/wmake/rules/linuxARM64Fujitsu/c++ b/wmake/rules/linuxARM64Fujitsu/c++
index 094e5e4746ad947180cae5697435f2437ea34ff3..9e2a5d0c6d7c5c4afa9c7801d1bfa5868bfaf97c 100644
--- a/wmake/rules/linuxARM64Fujitsu/c++
+++ b/wmake/rules/linuxARM64Fujitsu/c++
@@ -3,7 +3,7 @@
 #------------------------------------------------------------------------------
 include $(GENERAL_RULES)/Clang/c++
 
-CC         := FCC$(COMPILER_VERSION) -std=c++14
+CC         := FCC$(COMPILER_VERSION) -std=c++17
 c++ARCH    := -pthread
 
 ifneq (,$(strip $(WM_COMPILE_OPTION)))