]> git.ipfire.org Git - thirdparty/gcc.git/commit - libstdc++-v3/testsuite/23_containers/span/first_neg.cc
Improve precondition checks for std::span
authorJonathan Wakely <jwakely@redhat.com>
Thu, 5 Sep 2019 13:48:33 +0000 (14:48 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Thu, 5 Sep 2019 13:48:33 +0000 (14:48 +0100)
commitb5c433ce11a140e2221b8acc7dee21abc2a80c90
treea8868d5f7ccf93c569e688364dd86f613b2d90f3
parent55e8f926f260342e0b89765a306a3027daeaa10e
Improve precondition checks for std::span

* doc/xml/manual/status_cxx2020.xml: Update status for P0122R7 and
P1024R3. Remove entry for P0920R2.
* include/std/span  (__cpp_lib_span): Change value.
(__extent_storage, __extent_storage<dynamic_extent>): Remove default
constructor.
(span): Replace __extent_storage base class with data member.
(span::_S_subspan_extent): New function.
(span::empty()): Add nodiscard attribute.
(span::front, span::back, span::operator[]): Check preconditions.
(span::first, span::last, span::subspan): Add noexcept. Improve
precondition checks (LWG 3103).
(get): Remove redundant condition from static_assert.
(tuple_element<I, span<T, E>>): Fix static_assert message and simplify.
(as_writable_bytes): Add inline specifier.
* include/std/version (__cpp_lib_span): Change value.
* testsuite/23_containers/span/back_neg.cc: Remove stray semi-colon.
* testsuite/23_containers/span/front_neg.cc: Likewise.
* testsuite/23_containers/span/index_op_neg.cc: Likewise.
* testsuite/23_containers/span/last_neg.cc: Improve test.
* testsuite/23_containers/span/subspan_neg.cc: Likewise.
* testsuite/23_containers/span/1.cc: New test.
* testsuite/23_containers/span/2.cc: New test.
* testsuite/23_containers/span/back_assert_neg.cc: New test.
* testsuite/23_containers/span/first_2_assert_neg.cc: New test.
* testsuite/23_containers/span/first_assert_neg.cc: New test.
* testsuite/23_containers/span/first_neg.cc: New test.
* testsuite/23_containers/span/front_assert_neg.cc: New test.
* testsuite/23_containers/span/index_op_assert_neg.cc: New test.
* testsuite/23_containers/span/last_2_assert_neg.cc: New test.
* testsuite/23_containers/span/last_assert_neg.cc: New test.
* testsuite/23_containers/span/subspan_2_assert_neg.cc: New test.
* testsuite/23_containers/span/subspan_3_assert_neg.cc: New test.
* testsuite/23_containers/span/subspan_4_assert_neg.cc: New test.
* testsuite/23_containers/span/subspan_5_assert_neg.cc: New test.
* testsuite/23_containers/span/subspan_6_assert_neg.cc: New test.
* testsuite/23_containers/span/subspan_assert_neg.cc: New test.

From-SVN: r275411
26 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/doc/html/manual/status.html
libstdc++-v3/doc/xml/manual/status_cxx2020.xml
libstdc++-v3/include/std/span
libstdc++-v3/include/std/version
libstdc++-v3/testsuite/23_containers/span/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/2.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/back_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/first_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/front_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/index_op_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/last_neg.cc
libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc [new file with mode: 0644]
libstdc++-v3/testsuite/23_containers/span/subspan_neg.cc