]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/24_iterators/headers/iterator/range_access_c++14.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 24_iterators / headers / iterator / range_access_c++14.cc
CommitLineData
06db9920
JW
1// { dg-options "-std=gnu++14" }
2// { dg-do compile }
f67a9881 3
85ec4feb 4// Copyright (C) 2016-2018 Free Software Foundation, Inc.
f67a9881
PC
5//
6// This file is part of the GNU ISO C++ Library. This library is free
7// software; you can redistribute it and/or modify it under the
8// terms of the GNU General Public License as published by the
9// Free Software Foundation; either version 3, or (at your option)
10// any later version.
11
12// This library is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15// GNU General Public License for more details.
16
17// You should have received a copy of the GNU General Public License along
18// with this library; see the file COPYING3. If not see
19// <http://www.gnu.org/licenses/>.
20
21#include <iterator>
22
23namespace std
24{
25 template<class C> auto begin(C& c) -> decltype(c.begin());
26 template<class C> auto begin(const C& c) -> decltype(c.begin());
27
28 template<class C> auto end(C& c) -> decltype(c.end());
29 template<class C> auto end(const C& c) -> decltype(c.end());
30
ba364478
JW
31 template<class T, size_t N> constexpr T* begin(T (&array)[N]);
32 template<class T, size_t N> constexpr T* end(T (&array)[N]);
06db9920
JW
33
34 template<class C> auto cbegin(const C& c) -> decltype(c.begin());
35 template<class C> auto cend(const C& c) -> decltype(c.end());
36
37 template<class C> auto rbegin(C& c) -> decltype(c.rbegin());
38 template<class C> auto rbegin(const C& c) -> decltype(c.rbegin());
39
40 template<class C> auto rend(C& c) -> decltype(c.rend());
41 template<class C> auto rend(const C& c) -> decltype(c.rend());
42
43 template<class T, size_t N>
44 reverse_iterator<T*> rbegin(T (&array)[N]);
45 template<class T, size_t N>
46 reverse_iterator<T*> rend(T (&array)[N]);
47
48 template<class E>
49 reverse_iterator<const E*> rbegin(initializer_list<E>);
50 template<class E>
51 reverse_iterator<const E*> rend(initializer_list<E>);
52
53 template<class C>
54 auto crbegin(const C& c) -> decltype(std::rbegin(c));
55 template<class C>
56 auto cend(const C& c) -> decltype(std::rend(c));
f67a9881 57}