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.