]>
Commit | Line | Data |
---|---|---|
52066eae | 1 | // { dg-do run { target c++14 } } |
18eeaec4 | 2 | |
7adcbafe | 3 | // Copyright (C) 2013-2022 Free Software Foundation, Inc. |
18eeaec4 PC |
4 | // |
5 | // This file is part of the GNU ISO C++ Library. This library is free | |
6 | // software; you can redistribute it and/or modify it under the | |
7 | // terms of the GNU General Public License as published by the | |
8 | // Free Software Foundation; either version 3, or (at your option) | |
9 | // any later version. | |
b5a8fed6 | 10 | |
18eeaec4 PC |
11 | // This library is distributed in the hope that it will be useful, |
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | // GNU General Public License for more details. | |
b5a8fed6 | 15 | |
18eeaec4 PC |
16 | // You should have received a copy of the GNU General Public License along |
17 | // with this library; see the file COPYING3. If not see | |
18 | // <http://www.gnu.org/licenses/>. | |
19 | ||
b5a8fed6 JW |
20 | // Tuple |
21 | ||
22 | #include <tuple> | |
23 | #include <testsuite_hooks.h> | |
24 | ||
25 | using namespace std; | |
18eeaec4 | 26 | |
b5a8fed6 JW |
27 | int |
28 | main() | |
18eeaec4 | 29 | { |
b5a8fed6 JW |
30 | int j=1; |
31 | const int k=2; | |
32 | tuple<int,int &,const int&> a(0,j,k); | |
33 | const tuple<int,int &,const int&> b(1,j,k); | |
34 | VERIFY(get<int>(a)==0 && get<int&>(a)==1 && get<const int&>(a)==2); | |
35 | get<0>(a)=3; | |
36 | get<1>(a)=4; | |
37 | VERIFY(get<int>(a)==3 && get<int&>(a)==4); | |
38 | VERIFY(j==4); | |
39 | get<1>(b)=5; | |
40 | VERIFY(get<int>(b)==1 && get<int&>(b)==5 && get<const int&>(b)==2); | |
41 | VERIFY(j==5); | |
af222e74 JW |
42 | // test rvalue overload: |
43 | VERIFY(get<int>(std::move(b))==1); | |
44 | VERIFY(get<int&>(std::move(b))==5); | |
45 | VERIFY(get<const int&>(std::move(b))==2); | |
18eeaec4 | 46 | } |