Skip to content

Commit 0225803

Browse files
authored
Cloop constexpr (#8648)
* Ensures header __cplusplus is correctly defined under Visual C++ (/Zc:__cplusplus) * Sets compiler level to C++17 in Visual C++ * Defines CLOOP_CONSTEXPR as inline constexpr for C++17 and higher
1 parent 48336f7 commit 0225803

File tree

5 files changed

+21
-5
lines changed

5 files changed

+21
-5
lines changed

extern/cloop/src/cloop/Generator.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,9 @@ void CppGenerator::generate()
191191
fprintf(out, "#endif\n\n\n");
192192

193193
fprintf(out, "#ifndef CLOOP_CONSTEXPR\n");
194-
fprintf(out, "#if __cplusplus >= 201103L\n");
194+
fprintf(out, "#if __cplusplus >= 201703L\n");
195+
fprintf(out, "#define CLOOP_CONSTEXPR inline constexpr\n");
196+
fprintf(out, "#elif __cplusplus >= 201103L\n");
195197
fprintf(out, "#define CLOOP_CONSTEXPR constexpr\n");
196198
fprintf(out, "#else\n");
197199
fprintf(out, "#define CLOOP_CONSTEXPR const\n");

extern/cloop/src/cloop/cloop.vcxproj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@
119119
<WarningLevel>Level3</WarningLevel>
120120
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
121121
<Optimization>Disabled</Optimization>
122+
<LanguageStandard>stdcpp17</LanguageStandard>
123+
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
122124
</ClCompile>
123125
<Link>
124126
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -146,6 +148,8 @@
146148
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
147149
<WarningLevel>Level3</WarningLevel>
148150
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
151+
<LanguageStandard>stdcpp17</LanguageStandard>
152+
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
149153
</ClCompile>
150154
<Link>
151155
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -171,4 +175,4 @@
171175
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
172176
<ImportGroup Label="ExtensionTargets">
173177
</ImportGroup>
174-
</Project>
178+
</Project>

extern/cloop/src/tests/test1/test1-cpp-dll.vcxproj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@
129129
<WarningLevel>Level3</WarningLevel>
130130
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
131131
<Optimization>Disabled</Optimization>
132+
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
133+
<LanguageStandard>stdcpp17</LanguageStandard>
132134
</ClCompile>
133135
<Link>
134136
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -158,6 +160,8 @@
158160
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
159161
<WarningLevel>Level3</WarningLevel>
160162
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
163+
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
164+
<LanguageStandard>stdcpp17</LanguageStandard>
161165
</ClCompile>
162166
<Link>
163167
<GenerateDebugInformation>true</GenerateDebugInformation>
@@ -176,4 +180,4 @@
176180
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
177181
<ImportGroup Label="ExtensionTargets">
178182
</ImportGroup>
179-
</Project>
183+
</Project>

extern/cloop/src/tests/test1/test1-cpp-exe.vcxproj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@
129129
<WarningLevel>Level3</WarningLevel>
130130
<Optimization>Disabled</Optimization>
131131
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
132+
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
133+
<LanguageStandard>stdcpp17</LanguageStandard>
132134
</ClCompile>
133135
<Link>
134136
<SubSystem>Console</SubSystem>
@@ -161,6 +163,8 @@
161163
<FunctionLevelLinking>true</FunctionLevelLinking>
162164
<IntrinsicFunctions>true</IntrinsicFunctions>
163165
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
166+
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
167+
<LanguageStandard>stdcpp17</LanguageStandard>
164168
</ClCompile>
165169
<Link>
166170
<SubSystem>Console</SubSystem>
@@ -178,4 +182,4 @@
178182
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
179183
<ImportGroup Label="ExtensionTargets">
180184
</ImportGroup>
181-
</Project>
185+
</Project>

src/include/firebird/IdlFbInterfaces.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717

1818

1919
#ifndef CLOOP_CONSTEXPR
20-
#if __cplusplus >= 201103L
20+
#if __cplusplus >= 201703L
21+
#define CLOOP_CONSTEXPR inline constexpr
22+
#elif __cplusplus >= 201103L
2123
#define CLOOP_CONSTEXPR constexpr
2224
#else
2325
#define CLOOP_CONSTEXPR const

0 commit comments

Comments
 (0)