From f5b4dc38852f755de9c48cb78a773ab4e84b8078 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 18 Feb 2020 12:29:29 +0000 Subject: libstdc++: P2116R0 Remove tuple-like protocol support from fixed-extent span Following this change it's no longer possible to use std::span with structured bindings or with the tuple-like API. It will probably come back for C++23 though. P2116R0 Remove tuple-like protocol support from fixed-extent span * include/std/span (get, tuple_size, tuple_element): Remove. * testsuite/23_containers/span/everything.cc: Remove checks for tuple-like API. * testsuite/23_containers/span/get_neg.cc: Remove. * testsuite/23_containers/span/tuple_element_dynamic_neg.cc: Remove. * testsuite/23_containers/span/tuple_element_oob_neg.cc: Remove. * testsuite/23_containers/span/tuple_size_neg.cc: Remove. --- .../testsuite/23_containers/span/everything.cc | 4 --- .../testsuite/23_containers/span/get_neg.cc | 30 ---------------------- .../span/tuple_element_dynamic_neg.cc | 25 ------------------ .../23_containers/span/tuple_element_oob_neg.cc | 25 ------------------ .../testsuite/23_containers/span/tuple_size_neg.cc | 25 ------------------ 5 files changed, 109 deletions(-) delete mode 100644 libstdc++-v3/testsuite/23_containers/span/get_neg.cc delete mode 100644 libstdc++-v3/testsuite/23_containers/span/tuple_element_dynamic_neg.cc delete mode 100644 libstdc++-v3/testsuite/23_containers/span/tuple_element_oob_neg.cc delete mode 100644 libstdc++-v3/testsuite/23_containers/span/tuple_size_neg.cc (limited to 'libstdc++-v3/testsuite/23_containers/span') diff --git a/libstdc++-v3/testsuite/23_containers/span/everything.cc b/libstdc++-v3/testsuite/23_containers/span/everything.cc index c2f00683ff8..0cca06fa4fe 100644 --- a/libstdc++-v3/testsuite/23_containers/span/everything.cc +++ b/libstdc++-v3/testsuite/23_containers/span/everything.cc @@ -104,8 +104,6 @@ main() static_assert(data_span_first.size() == 3); static_assert(data_span_first.front() == 0); static_assert(data_span_first.back() == 2); - static_assert(std::tuple_size_v == 3); - static_assert(std::is_same_v, const int>); constexpr auto data_span_first_dyn = data_span.first(4); static_assert( @@ -122,8 +120,6 @@ main() static_assert(data_span_last.size() == 5); static_assert(data_span_last.front() == 4); static_assert(data_span_last.back() == 8); - static_assert(std::tuple_size_v == 5); - static_assert(std::is_same_v, const int>); constexpr auto data_span_last_dyn = data_span.last(6); static_assert( diff --git a/libstdc++-v3/testsuite/23_containers/span/get_neg.cc b/libstdc++-v3/testsuite/23_containers/span/get_neg.cc deleted file mode 100644 index 65ff412e252..00000000000 --- a/libstdc++-v3/testsuite/23_containers/span/get_neg.cc +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (C) 2019-2020 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=c++2a" } -// { dg-do compile { target c++2a } } - -#include -#include - -int -main() -{ - std::span myspan((int*)nullptr, (std::size_t)0); - std::get<0>(myspan); // { dg-error "here" } -} -// { dg-error "static assertion failed" "" { target *-*-* } 0 } diff --git a/libstdc++-v3/testsuite/23_containers/span/tuple_element_dynamic_neg.cc b/libstdc++-v3/testsuite/23_containers/span/tuple_element_dynamic_neg.cc deleted file mode 100644 index b96d88839f6..00000000000 --- a/libstdc++-v3/testsuite/23_containers/span/tuple_element_dynamic_neg.cc +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (C) 2019-2020 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=c++2a" } -// { dg-do compile { target c++2a } } - -#include -#include - -std::tuple_element<0, std::span> ts; // { dg-error "here" } -// { dg-error "static assertion failed" "" { target *-*-* } 0 } diff --git a/libstdc++-v3/testsuite/23_containers/span/tuple_element_oob_neg.cc b/libstdc++-v3/testsuite/23_containers/span/tuple_element_oob_neg.cc deleted file mode 100644 index e9627abff33..00000000000 --- a/libstdc++-v3/testsuite/23_containers/span/tuple_element_oob_neg.cc +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (C) 2019-2020 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=c++2a" } -// { dg-do compile { target c++2a } } - -#include -#include - -std::tuple_element<3, std::span> te; // { dg-error "here" } -// { dg-error "static assertion failed" "" { target *-*-* } 0 } diff --git a/libstdc++-v3/testsuite/23_containers/span/tuple_size_neg.cc b/libstdc++-v3/testsuite/23_containers/span/tuple_size_neg.cc deleted file mode 100644 index 16294738dda..00000000000 --- a/libstdc++-v3/testsuite/23_containers/span/tuple_size_neg.cc +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (C) 2019-2020 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=c++2a" } -// { dg-do compile { target c++2a } } - -#include -#include - -std::tuple_size> ts; // { dg-error "here" } -// { dg-error "static assertion failed" "" { target *-*-* } 0 } -- cgit v1.2.1