On 12/01/19 14:08 +0100, Jakub Jelinek wrote:
Hi!

On Fri, Jan 11, 2019 at 04:54:11PM +0100, Jakub Jelinek wrote:
I've noticed we don't have any feature test macros in the table for C++20,
even when a couple of the features have them defined.

Here is an updated patch, that in addition to that makes 9 URLs as we now
have #cxx in gcc-9/changes.html and adds missing P0941R2 entry that clang
table has.  For that one I'm not 100% sure what to say, I've copied all the
macros from http://wg21.link/p0941r2 into two source files (attached below),
one for core language features, another one for library and tested those
with -std=c++2a with current trunk.  Compared to what the paper lists, we
have __has_cpp_attribute (carries_dependency) 0, __cpp_guaranteed_copy_elision
and __cpp_nontype_template_parameter_auto not defined.  Is that what we
want?  On the library side, __cpp_lib_any,

This is missing from <version> and has the wrong value in <any>.

__cpp_lib_execution,

This is unimplemented (it's part of trodgers' PSTL work).

__cpp_lib_hardware_interference_size,

Unimplemented.

__cpp_lib_null_iterators,

This should be defined except in Debug Mode (and Debug Mode should be
fixed to support it).

__cpp_lib_parallel_algorithm,

Unimplemened (PSTL).

__cpp_lib_raw_memory_algorithms,

Missing from both <version> and <memory>

__cpp_lib_to_chars,

Not fully implemented.

__cpp_lib_uncaught_exceptions,

Only defined in <version> for !__STRICT_ANSI__.

__cpp_lib_variant

Missing from <version> and has wrong value in <variant>.

macros aren't defined (at least not in <version>) and
__cpp_lib_optional,

The value is wrong, we implement the P0032 changes that bumped the
macro to 201606.

__cpp_lib_shared_ptr_arrays, __cpp_lib_string_view

I think the value is wrong for these two.

have smaller values than those in the P0941R2.
Is that the desirable state given current C++2A implementation status?

I'll fix the issues above.

Reply via email to