@@ -174,6 +174,34 @@ C++ Language Changes in Clang
174
174
conforming GNU extensions. Projects incompatible with C++14 can add
175
175
``-std=gnu++98 `` to their build settings to restore the previous behaviour.
176
176
177
+ - Added support for some features from the C++ standard after C++14
178
+ (provisionally known as C++2a but expected to be C++20). This support can be
179
+ enabled with the ``-std=c++2a `` flag. This enables:
180
+
181
+ - Support for ``__VA_OPT__ ``, to allow variadic macros to easily provide
182
+ different expansions when they are invoked without variadic arguments.
183
+
184
+ - Recognition of the ``<=> `` token (the C++2a three-way comparison operator).
185
+
186
+ - Support for default member initializers for bit-fields.
187
+
188
+ - Lambda capture of ``*this ``.
189
+
190
+ - Pointer-to-member calls using ``const & ``-qualified pointers on temporary objects.
191
+
192
+ All of these features other than ``__VA_OPT__ `` and ``<=> `` are made
193
+ available with a warning in earlier C++ language modes.
194
+
195
+ - A warning has been added for a ``<= `` token followed immediately by a ``> ``
196
+ character. Code containing such constructs will change meaning in C++2a due
197
+ to the addition of the ``<=> `` operator.
198
+
199
+ - Clang implements the "destroying operator delete" feature described in C++
200
+ committee paper `P0722R1
201
+ <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0722r1.html> `,
202
+ which is targeting inclusion in C++2a but has not yet been voted into the C++
203
+ working draft. Support for this feature is enabled by the presence of the
204
+ standard library type ``std::destroying_delete_t ``.
177
205
178
206
OpenCL C Language Changes in Clang
179
207
----------------------------------
0 commit comments