From: Jonathan Wakely Date: Fri, 5 Jun 2015 17:17:53 +0000 (+0100) Subject: status_cxx2017.xml: Update status tables. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=46ba128114d3fd892b94c3767fb7a681088c7d79;p=gcc.git status_cxx2017.xml: Update status tables. * doc/xml/manual/status_cxx2017.xml: Update status tables. * doc/html/manual/*: Regenerate. * include/std/type_traits (bool_constant): Define. * testsuite/20_util/bool_constant/requirements.cc: New. * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Likewise. From-SVN: r224160 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 0badc6db107..fe8957637b5 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,15 @@ 2015-06-05 Jonathan Wakely + * doc/xml/manual/status_cxx2017.xml: Update status tables. + * doc/html/manual/*: Regenerate. + * include/std/type_traits (bool_constant): Define. + * testsuite/20_util/bool_constant/requirements.cc: New. + * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error. + * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: + Likewise. + * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: + Likewise. + * include/std/shared_mutex (__shared_mutex_pthread, __shared_mutex_cv): New helper types implementing the shared mutex requirements. diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html index 141ec5f8287..6d304dcb7fb 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -508,7 +508,31 @@ not in any particular release. N4280 - Non-member size() and moreN 

Table 1.6. C++ Technical Specifications Implementation Status

PaperTitleStatusComments
+ Non-member size() and moreN 
+ + N4387 + + + LWG 2228: Missing SFINAE rule in unique_ptr templated assignment + N 
+ + N4387 + + Improving pair and tuple, revision 3 N 
+ + N4389 + + Wording for bool_constant, revision 1 Y 
+ + N4508 + + A proposal to add shared_mutex (untimed) (Revision 4)Y 
+ + N4510 + + + Minimal incomplete type support for standard containers, revision 4 + Y 

Table 1.6. C++ Technical Specifications Implementation Status

PaperTitleStatusComments
N4076 @@ -528,7 +552,27 @@ not in any particular release. N4282 - The World's Dumbest Smart PointerYLibrary Fundamentals 2 TS

C++ TR1

+ The World's Dumbest Smart PointerYLibrary Fundamentals 2 TS + + N4388 + + Const-Propagating WrapperNLibrary Fundamentals 2 TS + + N4391 + + make_array, revision 4 NLibrary Fundamentals 2 TS + + N4502 + + Support for the C++ Detection Idiom, V2 NLibrary Fundamentals 2 TS + + N4519 + + Source-Code Information Capture NLibrary Fundamentals 2 TS + + N4521 + + Merge Fundamentals V1 into V2 NLibrary Fundamentals 2 TS


C++ TR1

This table is based on the table of contents of ISO/IEC DTR 19768 Doc No: N1836=05-0096 Date: 2005-06-24 Draft Technical Report on C++ Library Extensions diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml index 55f3cd208fd..d110572e57a 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml @@ -162,6 +162,67 @@ not in any particular release. + + + + + N4387 + + + + LWG 2228: Missing SFINAE rule in unique_ptr templated assignment + + N + + + + + + + + N4387 + + + Improving pair and tuple, revision 3 + N + + + + + + + N4389 + + + Wording for bool_constant, revision 1 + Y + + + + + + + N4508 + + + A proposal to add shared_mutex (untimed) (Revision 4) + Y + + + + + + + N4510 + + + + Minimal incomplete type support for standard containers, revision 4 + + Y + + + @@ -241,6 +302,69 @@ not in any particular release. Library Fundamentals 2 TS + + + + + + N4388 + + + Const-Propagating Wrapper + N + Library Fundamentals 2 TS + + + + + + + N4391 + + + make_array, revision 4 + N + Library Fundamentals 2 TS + + + + + + + N4502 + + + Support for the C++ Detection Idiom, V2 + N + Library Fundamentals 2 TS + + + + + + + N4519 + + + Source-Code Information Capture + N + Library Fundamentals 2 TS + + + + + + + N4521 + + + Merge Fundamentals V1 into V2 + N + Library Fundamentals 2 TS + + + + diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits index 2eae61bb8f4..e09c856c934 100644 --- a/libstdc++-v3/include/std/type_traits +++ b/libstdc++-v3/include/std/type_traits @@ -92,6 +92,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template using __bool_constant = integral_constant; +#if __cplusplus > 201402L +// TODO: #define __cpp_lib_bool_constant 201505 + template + using bool_constant = integral_constant; +#endif + // Meta programming helper types. template diff --git a/libstdc++-v3/testsuite/20_util/bool_constant/requirements.cc b/libstdc++-v3/testsuite/20_util/bool_constant/requirements.cc new file mode 100644 index 00000000000..ddc02df8115 --- /dev/null +++ b/libstdc++-v3/testsuite/20_util/bool_constant/requirements.cc @@ -0,0 +1,26 @@ +// Copyright (C) 2015 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + +// { dg-options "-std=gnu++17" } +// { dg-do compile } + +#include + +static_assert( std::is_same, std::true_type>::value, + "bool_constant is true_type"); +static_assert( std::is_same, std::false_type>::value, + "bool_constant is false_type"); diff --git a/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc b/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc index 263fff2d4df..2723e5c6689 100644 --- a/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc +++ b/libstdc++-v3/testsuite/20_util/declval/requirements/1_neg.cc @@ -19,7 +19,7 @@ // with this library; see the file COPYING3. If not see // . -// { dg-error "static assertion failed" "" { target *-*-* } 2203 } +// { dg-error "static assertion failed" "" { target *-*-* } 2209 } #include diff --git a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc index 5fbf311516a..507930d03d2 100644 --- a/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc +++ b/libstdc++-v3/testsuite/20_util/make_signed/requirements/typedefs_neg.cc @@ -48,4 +48,4 @@ void test01() // { dg-error "required from here" "" { target *-*-* } 40 } // { dg-error "required from here" "" { target *-*-* } 42 } -// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1868 } +// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1874 } diff --git a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc index 4e54b1842d7..608fd1a15f2 100644 --- a/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc +++ b/libstdc++-v3/testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc @@ -48,5 +48,5 @@ void test01() // { dg-error "required from here" "" { target *-*-* } 40 } // { dg-error "required from here" "" { target *-*-* } 42 } -// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1764 } -// { dg-error "declaration of" "" { target *-*-* } 1721 } +// { dg-error "invalid use of incomplete type" "" { target *-*-* } 1770 } +// { dg-error "declaration of" "" { target *-*-* } 1727 }