ITK  4.13.0
Insight Segmentation and Registration Toolkit
ITK_COMPILER_INFO_MSVC_CXX.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
18 #ifndef ITK_COMPILER_INFO_MSVC_CXX_h
19 #define ITK_COMPILER_INFO_MSVC_CXX_h
20 #ifndef itk_compiler_detection_h
21 # error This file may only be included from itk_compiler_detection.h
22 #endif
23 
24 # if !(_MSC_VER >= 1600)
25 # error Unsupported compiler version
26 # endif
27 
28  /* _MSC_VER = VVRR */
29 # define ITK_COMPILER_VERSION_MAJOR ITK_DEC(_MSC_VER / 100)
30 # define ITK_COMPILER_VERSION_MINOR ITK_DEC(_MSC_VER % 100)
31 # if defined(_MSC_FULL_VER)
32 # if _MSC_VER >= 1400
33  /* _MSC_FULL_VER = VVRRPPPPP */
34 # define ITK_COMPILER_VERSION_PATCH ITK_DEC(_MSC_FULL_VER % 100000)
35 # else
36  /* _MSC_FULL_VER = VVRRPPPP */
37 # define ITK_COMPILER_VERSION_PATCH ITK_DEC(_MSC_FULL_VER % 10000)
38 # endif
39 # endif
40 # if defined(_MSC_BUILD)
41 # define ITK_COMPILER_VERSION_TWEAK ITK_DEC(_MSC_BUILD)
42 # endif
43 
44 # define ITK_COMPILER_CXX_AGGREGATE_DEFAULT_INITIALIZERS 0
45 
46 # if _MSC_VER >= 1800
47 # define ITK_COMPILER_CXX_ALIAS_TEMPLATES 1
48 # else
49 # define ITK_COMPILER_CXX_ALIAS_TEMPLATES 0
50 # endif
51 
52 # if _MSC_VER >= 1900
53 # define ITK_COMPILER_CXX_ALIGNAS 1
54 # else
55 # define ITK_COMPILER_CXX_ALIGNAS 0
56 # endif
57 
58 # if _MSC_VER >= 1900
59 # define ITK_COMPILER_CXX_ALIGNOF 1
60 # else
61 # define ITK_COMPILER_CXX_ALIGNOF 0
62 # endif
63 
64 # if _MSC_VER >= 1900
65 # define ITK_COMPILER_CXX_ATTRIBUTES 1
66 # else
67 # define ITK_COMPILER_CXX_ATTRIBUTES 0
68 # endif
69 
70 # if _MSC_VER >= 1900
71 # define ITK_COMPILER_CXX_ATTRIBUTE_DEPRECATED 1
72 # else
73 # define ITK_COMPILER_CXX_ATTRIBUTE_DEPRECATED 0
74 # endif
75 
76 # if _MSC_VER >= 1600
77 # define ITK_COMPILER_CXX_AUTO_TYPE 1
78 # else
79 # define ITK_COMPILER_CXX_AUTO_TYPE 0
80 # endif
81 
82 # if _MSC_VER >= 1900
83 # define ITK_COMPILER_CXX_BINARY_LITERALS 1
84 # else
85 # define ITK_COMPILER_CXX_BINARY_LITERALS 0
86 # endif
87 
88 # if _MSC_VER >= 1900
89 # define ITK_COMPILER_CXX_CONSTEXPR 1
90 # else
91 # define ITK_COMPILER_CXX_CONSTEXPR 0
92 # endif
93 
94 # if _MSC_VER >= 1800
95 # define ITK_COMPILER_CXX_CONTEXTUAL_CONVERSIONS 1
96 # else
97 # define ITK_COMPILER_CXX_CONTEXTUAL_CONVERSIONS 0
98 # endif
99 
100 # define ITK_COMPILER_CXX_DECLTYPE_INCOMPLETE_RETURN_TYPES 0
101 
102 # if _MSC_VER >= 1600
103 # define ITK_COMPILER_CXX_DECLTYPE 1
104 # else
105 # define ITK_COMPILER_CXX_DECLTYPE 0
106 # endif
107 
108 # if _MSC_VER >= 1900
109 # define ITK_COMPILER_CXX_DECLTYPE_AUTO 1
110 # else
111 # define ITK_COMPILER_CXX_DECLTYPE_AUTO 0
112 # endif
113 
114 # if _MSC_VER >= 1800
115 # define ITK_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS 1
116 # else
117 # define ITK_COMPILER_CXX_DEFAULT_FUNCTION_TEMPLATE_ARGS 0
118 # endif
119 
120 # if _MSC_VER >= 1800
121 # define ITK_COMPILER_CXX_DEFAULTED_FUNCTIONS 1
122 # else
123 # define ITK_COMPILER_CXX_DEFAULTED_FUNCTIONS 0
124 # endif
125 
126 # if _MSC_VER >= 1900
127 # define ITK_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS 1
128 # else
129 # define ITK_COMPILER_CXX_DEFAULTED_MOVE_INITIALIZERS 0
130 # endif
131 
132 # if _MSC_VER >= 1800
133 # define ITK_COMPILER_CXX_DELEGATING_CONSTRUCTORS 1
134 # else
135 # define ITK_COMPILER_CXX_DELEGATING_CONSTRUCTORS 0
136 # endif
137 
138 # if _MSC_VER >= 1900
139 # define ITK_COMPILER_CXX_DELETED_FUNCTIONS 1
140 # else
141 # define ITK_COMPILER_CXX_DELETED_FUNCTIONS 0
142 # endif
143 
144 # if _MSC_VER >= 1900
145 # define ITK_COMPILER_CXX_DIGIT_SEPARATORS 1
146 # else
147 # define ITK_COMPILER_CXX_DIGIT_SEPARATORS 0
148 # endif
149 
150 # if _MSC_VER >= 1700
151 # define ITK_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS 1
152 # else
153 # define ITK_COMPILER_CXX_ENUM_FORWARD_DECLARATIONS 0
154 # endif
155 
156 # if _MSC_VER >= 1800
157 # define ITK_COMPILER_CXX_EXPLICIT_CONVERSIONS 1
158 # else
159 # define ITK_COMPILER_CXX_EXPLICIT_CONVERSIONS 0
160 # endif
161 
162 # if _MSC_VER >= 1600
163 # define ITK_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS 1
164 # else
165 # define ITK_COMPILER_CXX_EXTENDED_FRIEND_DECLARATIONS 0
166 # endif
167 
168 # if _MSC_VER >= 1600
169 # define ITK_COMPILER_CXX_EXTERN_TEMPLATES 1
170 # else
171 # define ITK_COMPILER_CXX_EXTERN_TEMPLATES 0
172 # endif
173 
174 # if _MSC_VER >= 1700
175 # define ITK_COMPILER_CXX_FINAL 1
176 # else
177 # define ITK_COMPILER_CXX_FINAL 0
178 # endif
179 
180 # if _MSC_VER >= 1900
181 # define ITK_COMPILER_CXX_FUNC_IDENTIFIER 1
182 # else
183 # define ITK_COMPILER_CXX_FUNC_IDENTIFIER 0
184 # endif
185 
186 # if _MSC_FULL_VER >= 180030723
187 # define ITK_COMPILER_CXX_GENERALIZED_INITIALIZERS 1
188 # else
189 # define ITK_COMPILER_CXX_GENERALIZED_INITIALIZERS 0
190 # endif
191 
192 # if _MSC_VER >= 1900
193 # define ITK_COMPILER_CXX_GENERIC_LAMBDAS 1
194 # else
195 # define ITK_COMPILER_CXX_GENERIC_LAMBDAS 0
196 # endif
197 
198 # if _MSC_VER >= 1900
199 # define ITK_COMPILER_CXX_INHERITING_CONSTRUCTORS 1
200 # else
201 # define ITK_COMPILER_CXX_INHERITING_CONSTRUCTORS 0
202 # endif
203 
204 # if _MSC_VER >= 1900
205 # define ITK_COMPILER_CXX_INLINE_NAMESPACES 1
206 # else
207 # define ITK_COMPILER_CXX_INLINE_NAMESPACES 0
208 # endif
209 
210 # if _MSC_VER >= 1600
211 # define ITK_COMPILER_CXX_LAMBDAS 1
212 # else
213 # define ITK_COMPILER_CXX_LAMBDAS 0
214 # endif
215 
216 # if _MSC_VER >= 1900
217 # define ITK_COMPILER_CXX_LAMBDA_INIT_CAPTURES 1
218 # else
219 # define ITK_COMPILER_CXX_LAMBDA_INIT_CAPTURES 0
220 # endif
221 
222 # if _MSC_VER >= 1600
223 # define ITK_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS 1
224 # else
225 # define ITK_COMPILER_CXX_LOCAL_TYPE_TEMPLATE_ARGS 0
226 # endif
227 
228 # if _MSC_VER >= 1600
229 # define ITK_COMPILER_CXX_LONG_LONG_TYPE 1
230 # else
231 # define ITK_COMPILER_CXX_LONG_LONG_TYPE 0
232 # endif
233 
234 # if _MSC_VER >= 1900
235 # define ITK_COMPILER_CXX_NOEXCEPT 1
236 # else
237 # define ITK_COMPILER_CXX_NOEXCEPT 0
238 # endif
239 
240 # if _MSC_VER >= 1900
241 # define ITK_COMPILER_CXX_NONSTATIC_MEMBER_INIT 1
242 # else
243 # define ITK_COMPILER_CXX_NONSTATIC_MEMBER_INIT 0
244 # endif
245 
246 # if _MSC_VER >= 1600
247 # define ITK_COMPILER_CXX_NULLPTR 1
248 # else
249 # define ITK_COMPILER_CXX_NULLPTR 0
250 # endif
251 
252 # if _MSC_VER >= 1700
253 # define ITK_COMPILER_CXX_OVERRIDE 1
254 # else
255 # define ITK_COMPILER_CXX_OVERRIDE 0
256 # endif
257 
258 # if _MSC_VER >= 1700
259 # define ITK_COMPILER_CXX_RANGE_FOR 1
260 # else
261 # define ITK_COMPILER_CXX_RANGE_FOR 0
262 # endif
263 
264 # if _MSC_VER >= 1800
265 # define ITK_COMPILER_CXX_RAW_STRING_LITERALS 1
266 # else
267 # define ITK_COMPILER_CXX_RAW_STRING_LITERALS 0
268 # endif
269 
270 # if _MSC_VER >= 1900
271 # define ITK_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS 1
272 # else
273 # define ITK_COMPILER_CXX_REFERENCE_QUALIFIED_FUNCTIONS 0
274 # endif
275 
276 # define ITK_COMPILER_CXX_RELAXED_CONSTEXPR 0
277 
278 # if _MSC_VER >= 1900
279 # define ITK_COMPILER_CXX_RETURN_TYPE_DEDUCTION 1
280 # else
281 # define ITK_COMPILER_CXX_RETURN_TYPE_DEDUCTION 0
282 # endif
283 
284 # if _MSC_VER >= 1600
285 # define ITK_COMPILER_CXX_RIGHT_ANGLE_BRACKETS 1
286 # else
287 # define ITK_COMPILER_CXX_RIGHT_ANGLE_BRACKETS 0
288 # endif
289 
290 # if _MSC_VER >= 1600
291 # define ITK_COMPILER_CXX_RVALUE_REFERENCES 1
292 # else
293 # define ITK_COMPILER_CXX_RVALUE_REFERENCES 0
294 # endif
295 
296 # if _MSC_VER >= 1900
297 # define ITK_COMPILER_CXX_SIZEOF_MEMBER 1
298 # else
299 # define ITK_COMPILER_CXX_SIZEOF_MEMBER 0
300 # endif
301 
302 # if _MSC_VER >= 1600
303 # define ITK_COMPILER_CXX_STATIC_ASSERT 1
304 # else
305 # define ITK_COMPILER_CXX_STATIC_ASSERT 0
306 # endif
307 
308 # if _MSC_VER >= 1700
309 # define ITK_COMPILER_CXX_STRONG_ENUMS 1
310 # else
311 # define ITK_COMPILER_CXX_STRONG_ENUMS 0
312 # endif
313 
314 # if _MSC_VER >= 1900
315 # define ITK_COMPILER_CXX_THREAD_LOCAL 1
316 # else
317 # define ITK_COMPILER_CXX_THREAD_LOCAL 0
318 # endif
319 
320 # if _MSC_VER >= 1600
321 # define ITK_COMPILER_CXX_TRAILING_RETURN_TYPES 1
322 # else
323 # define ITK_COMPILER_CXX_TRAILING_RETURN_TYPES 0
324 # endif
325 
326 # if _MSC_VER >= 1900
327 # define ITK_COMPILER_CXX_UNICODE_LITERALS 1
328 # else
329 # define ITK_COMPILER_CXX_UNICODE_LITERALS 0
330 # endif
331 
332 # if _MSC_VER >= 1800
333 # define ITK_COMPILER_CXX_UNIFORM_INITIALIZATION 1
334 # else
335 # define ITK_COMPILER_CXX_UNIFORM_INITIALIZATION 0
336 # endif
337 
338 # if _MSC_VER >= 1900
339 # define ITK_COMPILER_CXX_UNRESTRICTED_UNIONS 1
340 # else
341 # define ITK_COMPILER_CXX_UNRESTRICTED_UNIONS 0
342 # endif
343 
344 # if _MSC_VER >= 1900
345 # define ITK_COMPILER_CXX_USER_LITERALS 1
346 # else
347 # define ITK_COMPILER_CXX_USER_LITERALS 0
348 # endif
349 
350 # if _MSC_FULL_VER >= 190023918
351 # define ITK_COMPILER_CXX_VARIABLE_TEMPLATES 1
352 # else
353 # define ITK_COMPILER_CXX_VARIABLE_TEMPLATES 0
354 # endif
355 
356 # if _MSC_VER >= 1600
357 # define ITK_COMPILER_CXX_VARIADIC_MACROS 1
358 # else
359 # define ITK_COMPILER_CXX_VARIADIC_MACROS 0
360 # endif
361 
362 # if _MSC_VER >= 1800
363 # define ITK_COMPILER_CXX_VARIADIC_TEMPLATES 1
364 # else
365 # define ITK_COMPILER_CXX_VARIADIC_TEMPLATES 0
366 # endif
367 
368 # if _MSC_VER >= 1600
369 # define ITK_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS 1
370 # else
371 # define ITK_COMPILER_CXX_TEMPLATE_TEMPLATE_PARAMETERS 0
372 # endif
373 
374 # if _MSC_VER >= 1700
375 # define ITK_COMPILER_CXX_ATOMIC 1
376 # else
377 # define ITK_COMPILER_CXX_ATOMIC 0
378 # endif
379 #endif // ITK_COMPILER_INFO_MSVC_CXX_h