diff --git a/extern/cloop/src/cloop/Generator.cpp b/extern/cloop/src/cloop/Generator.cpp
index 3cfdd2311fb..5a3ca56f65e 100644
--- a/extern/cloop/src/cloop/Generator.cpp
+++ b/extern/cloop/src/cloop/Generator.cpp
@@ -191,7 +191,9 @@ void CppGenerator::generate()
fprintf(out, "#endif\n\n\n");
fprintf(out, "#ifndef CLOOP_CONSTEXPR\n");
- fprintf(out, "#if __cplusplus >= 201103L\n");
+ fprintf(out, "#if __cplusplus >= 201703L\n");
+ fprintf(out, "#define CLOOP_CONSTEXPR inline constexpr\n");
+ fprintf(out, "#elif __cplusplus >= 201103L\n");
fprintf(out, "#define CLOOP_CONSTEXPR constexpr\n");
fprintf(out, "#else\n");
fprintf(out, "#define CLOOP_CONSTEXPR const\n");
diff --git a/extern/cloop/src/cloop/cloop.vcxproj b/extern/cloop/src/cloop/cloop.vcxproj
index eee16a54c39..8e72817dcae 100644
--- a/extern/cloop/src/cloop/cloop.vcxproj
+++ b/extern/cloop/src/cloop/cloop.vcxproj
@@ -119,6 +119,8 @@
Level3
ProgramDatabase
Disabled
+ stdcpp17
+ /Zc:__cplusplus %(AdditionalOptions)
true
@@ -146,6 +148,8 @@
MultiThreadedDLL
Level3
ProgramDatabase
+ stdcpp17
+ /Zc:__cplusplus %(AdditionalOptions)
true
@@ -171,4 +175,4 @@
-
+
\ No newline at end of file
diff --git a/extern/cloop/src/tests/test1/test1-cpp-dll.vcxproj b/extern/cloop/src/tests/test1/test1-cpp-dll.vcxproj
index 03acdd5900a..c5a24cab979 100644
--- a/extern/cloop/src/tests/test1/test1-cpp-dll.vcxproj
+++ b/extern/cloop/src/tests/test1/test1-cpp-dll.vcxproj
@@ -129,6 +129,8 @@
Level3
ProgramDatabase
Disabled
+ /Zc:__cplusplus %(AdditionalOptions)
+ stdcpp17
true
@@ -158,6 +160,8 @@
MultiThreadedDLL
Level3
ProgramDatabase
+ /Zc:__cplusplus %(AdditionalOptions)
+ stdcpp17
true
@@ -176,4 +180,4 @@
-
+
\ No newline at end of file
diff --git a/extern/cloop/src/tests/test1/test1-cpp-exe.vcxproj b/extern/cloop/src/tests/test1/test1-cpp-exe.vcxproj
index 8aed4d0a303..26ead73b5ac 100644
--- a/extern/cloop/src/tests/test1/test1-cpp-exe.vcxproj
+++ b/extern/cloop/src/tests/test1/test1-cpp-exe.vcxproj
@@ -129,6 +129,8 @@
Level3
Disabled
WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ /Zc:__cplusplus %(AdditionalOptions)
+ stdcpp17
Console
@@ -161,6 +163,8 @@
true
true
WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ /Zc:__cplusplus %(AdditionalOptions)
+ stdcpp17
Console
@@ -178,4 +182,4 @@
-
+
\ No newline at end of file
diff --git a/src/include/firebird/IdlFbInterfaces.h b/src/include/firebird/IdlFbInterfaces.h
index 3033b9cff67..0da59e7f052 100644
--- a/src/include/firebird/IdlFbInterfaces.h
+++ b/src/include/firebird/IdlFbInterfaces.h
@@ -17,7 +17,9 @@
#ifndef CLOOP_CONSTEXPR
-#if __cplusplus >= 201103L
+#if __cplusplus >= 201703L
+#define CLOOP_CONSTEXPR inline constexpr
+#elif __cplusplus >= 201103L
#define CLOOP_CONSTEXPR constexpr
#else
#define CLOOP_CONSTEXPR const