… | |
… | |
66 | |
66 | |
67 | The macro C<ECB_PTRSIZE> is defined to the size of a pointer on this |
67 | The macro C<ECB_PTRSIZE> is defined to the size of a pointer on this |
68 | platform (currently C<4> or C<8>) and can be used in preprocessor |
68 | platform (currently C<4> or C<8>) and can be used in preprocessor |
69 | expressions. |
69 | expressions. |
70 | |
70 | |
71 | For C<ptrdiff_t> and C<size_t> use C<stddef.h>. |
71 | For C<ptrdiff_t> and C<size_t> use C<stddef.h>/C<cstddef>. |
72 | |
72 | |
73 | =head2 LANGUAGE/ENVIRONMENT/COMPILER VERSIONS |
73 | =head2 LANGUAGE/ENVIRONMENT/COMPILER VERSIONS |
74 | |
74 | |
75 | All the following symbols expand to an expression that can be tested in |
75 | All the following symbols expand to an expression that can be tested in |
76 | preprocessor instructions as well as treated as a boolean (use C<!!> to |
76 | preprocessor instructions as well as treated as a boolean (use C<!!> to |
… | |
… | |
89 | 9899:1999) or any later version, while not claiming to be C++. |
89 | 9899:1999) or any later version, while not claiming to be C++. |
90 | |
90 | |
91 | Note that later versions (ECB_C11) remove core features again (for |
91 | Note that later versions (ECB_C11) remove core features again (for |
92 | example, variable length arrays). |
92 | example, variable length arrays). |
93 | |
93 | |
94 | =item ECB_C11 |
94 | =item ECB_C11, ECB_C17 |
95 | |
95 | |
96 | True if the implementation claims to be compliant to C11 (ISO/IEC |
96 | True if the implementation claims to be compliant to C11/C17 (ISO/IEC |
97 | 9899:2011) or any later version, while not claiming to be C++. |
97 | 9899:2011, :20187) or any later version, while not claiming to be C++. |
98 | |
98 | |
99 | =item ECB_CPP |
99 | =item ECB_CPP |
100 | |
100 | |
101 | True if the implementation defines the C<__cplusplus__> macro to a true |
101 | True if the implementation defines the C<__cplusplus__> macro to a true |
102 | value, which is typically true for C++ compilers. |
102 | value, which is typically true for C++ compilers. |
103 | |
103 | |
104 | =item ECB_CPP11 |
104 | =item ECB_CPP11, ECB_CPP14, ECB_CPP17 |
105 | |
105 | |
106 | True if the implementation claims to be compliant to ISO/IEC 14882:2011 |
106 | True if the implementation claims to be compliant to C++11/C++14/C++17 |
107 | (C++11) or any later version. |
107 | (ISO/IEC 14882:2011, :2014, :2017) or any later version. |
108 | |
108 | |
109 | =item ECB_GCC_VERSION (major, minor) |
109 | =item ECB_GCC_VERSION (major, minor) |
110 | |
110 | |
111 | Expands to a true value (suitable for testing in by the preprocessor) |
111 | Expands to a true value (suitable for testing in by the preprocessor) |
112 | if the compiler used is GNU C and the version is the given version, or |
112 | if the compiler used is GNU C and the version is the given version, or |