big_tuples.cc: New.
2007-12-24 Paolo Carlini <pcarlini@suse.de> * testsuite/20_util/tuple/cons/big_tuples.cc: New. * testsuite/20_util/tuple/cons/constructor.cc: Likewise. * testsuite/20_util/tuple/cons/assignment.cc: Likewise. * testsuite/20_util/tuple/tuple_element.cc: Likewise. * testsuite/20_util/tuple/tuple_size.cc: Likewise. * testsuite/20_util/tuple/comparison_operators/comparisons.cc: Likewise. * testsuite/20_util/tuple/element_access/get.cc: Likewise. * testsuite/20_util/tuple/creation_functions/23978.cc: Likewise. * testsuite/20_util/tuple/creation_functions/tie.cc: Likewise. * testsuite/20_util/tuple/creation_functions/make_tuple.cc: Likewise. * testsuite/20_util/tuple/requirements/explicit_instantiation.cc: Fix header file and namespace. * testsuite/tr1/6_containers/tuple/cons/big_tuples.cc: Minor tweaks. * testsuite/tr1/6_containers/tuple/cons/constructor.cc: Likewise. * testsuite/tr1/6_containers/tuple/cons/assignment.cc: Likewise. * testsuite/tr1/6_containers/tuple/tuple_element.cc: Likewise. * testsuite/tr1/6_containers/tuple/tuple_size.cc: Likewise. * testsuite/tr1/6_containers/tuple/comparison_operators/ comparisons.cc: Likewise. * testsuite/tr1/6_containers/tuple/element_access/get.cc: Likewise. * testsuite/tr1/6_containers/tuple/creation_functions/tie.cc: Likewise. * testsuite/tr1/6_containers/tuple/creation_functions/make_tuple.cc: Likewise. From-SVN: r131159
This commit is contained in:
parent
045fcc24c9
commit
a1c1054b55
21 changed files with 578 additions and 11 deletions
|
@ -1,3 +1,32 @@
|
|||
2007-12-24 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* testsuite/20_util/tuple/cons/big_tuples.cc: New.
|
||||
* testsuite/20_util/tuple/cons/constructor.cc: Likewise.
|
||||
* testsuite/20_util/tuple/cons/assignment.cc: Likewise.
|
||||
* testsuite/20_util/tuple/tuple_element.cc: Likewise.
|
||||
* testsuite/20_util/tuple/tuple_size.cc: Likewise.
|
||||
* testsuite/20_util/tuple/comparison_operators/comparisons.cc:
|
||||
Likewise.
|
||||
* testsuite/20_util/tuple/element_access/get.cc: Likewise.
|
||||
* testsuite/20_util/tuple/creation_functions/23978.cc: Likewise.
|
||||
* testsuite/20_util/tuple/creation_functions/tie.cc: Likewise.
|
||||
* testsuite/20_util/tuple/creation_functions/make_tuple.cc: Likewise.
|
||||
|
||||
* testsuite/20_util/tuple/requirements/explicit_instantiation.cc:
|
||||
Fix header file and namespace.
|
||||
|
||||
* testsuite/tr1/6_containers/tuple/cons/big_tuples.cc: Minor tweaks.
|
||||
* testsuite/tr1/6_containers/tuple/cons/constructor.cc: Likewise.
|
||||
* testsuite/tr1/6_containers/tuple/cons/assignment.cc: Likewise.
|
||||
* testsuite/tr1/6_containers/tuple/tuple_element.cc: Likewise.
|
||||
* testsuite/tr1/6_containers/tuple/tuple_size.cc: Likewise.
|
||||
* testsuite/tr1/6_containers/tuple/comparison_operators/
|
||||
comparisons.cc: Likewise.
|
||||
* testsuite/tr1/6_containers/tuple/element_access/get.cc: Likewise.
|
||||
* testsuite/tr1/6_containers/tuple/creation_functions/tie.cc: Likewise.
|
||||
* testsuite/tr1/6_containers/tuple/creation_functions/make_tuple.cc:
|
||||
Likewise.
|
||||
|
||||
2007-12-24 Jonathan Wakely <jwakely.gcc@gmail.com>
|
||||
|
||||
* testsuite/tr1/2_general_utilities/shared_ptr/thread/
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
|
||||
// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// Tuple
|
||||
|
||||
#include <tuple>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
#define TEST1(x) VERIFY( x == x && !(x != x) && x <= x && !(x < x) )
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
int i=0;
|
||||
int j=0;
|
||||
int k=2;
|
||||
tuple<int, int, int> a(0, 0, 0);
|
||||
tuple<int, int, int> b(0, 0, 1);
|
||||
tuple<int& , int& , int&> c(i,j,k);
|
||||
tuple<const int&, const int&, const int&> d(c);
|
||||
TEST1(a);
|
||||
TEST1(b);
|
||||
TEST1(c);
|
||||
TEST1(d);
|
||||
VERIFY(!(a > a) && !(b > b));
|
||||
VERIFY(a >= a && b >= b);
|
||||
VERIFY(a < b && !(b < a) && a <= b && !(b <= a));
|
||||
VERIFY(b > a && !(a > b) && b >= a && !(a >= b));
|
||||
}
|
53
libstdc++-v3/testsuite/20_util/tuple/cons/assignment.cc
Normal file
53
libstdc++-v3/testsuite/20_util/tuple/cons/assignment.cc
Normal file
|
@ -0,0 +1,53 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
|
||||
// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// Tuple
|
||||
|
||||
#include <tuple>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
tuple<> ta;
|
||||
tuple<> tb;
|
||||
ta = tb;
|
||||
|
||||
tuple<int> tc(1);
|
||||
tuple<int> td(0);
|
||||
td = tc;
|
||||
VERIFY(get<0>(td) == 1);
|
||||
|
||||
int i=0;
|
||||
tuple<int&> te(i);
|
||||
te = tc;
|
||||
VERIFY(i == 1);
|
||||
|
||||
tuple<const int&> tf(tc);
|
||||
|
||||
get<0>(tc) = 2;
|
||||
VERIFY(get<0>(tf) == 2);
|
||||
tuple<double> tg;
|
||||
tg = tc;
|
||||
}
|
105
libstdc++-v3/testsuite/20_util/tuple/cons/big_tuples.cc
Normal file
105
libstdc++-v3/testsuite/20_util/tuple/cons/big_tuples.cc
Normal file
|
@ -0,0 +1,105 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
|
||||
// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// Tuple
|
||||
|
||||
#include <tuple>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
// A simple class without conversions to check some things
|
||||
struct foo
|
||||
{ };
|
||||
|
||||
void
|
||||
test_constructors()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
int x1=0,x2=0;
|
||||
const int &z1=x1;
|
||||
|
||||
// Test empty constructor
|
||||
tuple<> ta;
|
||||
tuple<int,int> tb;
|
||||
// Test construction from values
|
||||
tuple<int,int> tc(x1,x2);
|
||||
tuple<int,int&> td(x1,x2);
|
||||
tuple<const int&> te(z1);
|
||||
x1=1;
|
||||
x2=1;
|
||||
VERIFY(get<0>(td) == 0 && get<1>(td) == 1 && get<0>(te) == 1);
|
||||
|
||||
// Test identical tuple copy constructor
|
||||
tuple<int,int> tf(tc);
|
||||
tuple<int,int> tg(td);
|
||||
tuple<const int&> th(te);
|
||||
// Test different tuple copy constructor
|
||||
tuple<int,double> ti(tc);
|
||||
tuple<int,double> tj(td);
|
||||
// Test constructing from a pair
|
||||
pair<int,int> pair1(1,1);
|
||||
const pair<int,int> pair2(pair1);
|
||||
tuple<int,int> tl(pair1);
|
||||
tuple<int,const int&> tm(pair1);
|
||||
tuple<int,int> tn(pair2);
|
||||
tuple<int,const int&> to(pair2);
|
||||
}
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
//test construction
|
||||
typedef tuple<int,int,int,int,int,int,int,int,int,int> type1;
|
||||
type1 a(0, 0, 0, 0, 0, 0, 0, 0, 0, 1);
|
||||
type1 b(0, 0, 0, 0, 0, 0, 0, 0, 0, 2);
|
||||
type1 c(a);
|
||||
typedef tuple<int,int,int,int,int,int,int,int,int,char> type2;
|
||||
type2 d(0, 0, 0, 0, 0, 0, 0, 0, 0, 3);
|
||||
type1 e(d);
|
||||
typedef tuple<foo,int,int,int,int,int,int,int,int,foo> type3;
|
||||
// get
|
||||
VERIFY(get<9>(a)==1 && get<9>(b)==2);
|
||||
// comparisons
|
||||
VERIFY(a==a && !(a!=a) && a<=a && a>=a && !(a<a) && !(a>a));
|
||||
VERIFY(!(a==b) && a!=b && a<=b && a<b && !(a>=b) && !(a>b));
|
||||
//tie
|
||||
{
|
||||
int i = 0;
|
||||
tie(ignore, ignore, ignore, ignore, ignore, ignore, ignore, ignore,
|
||||
ignore, i) = a;
|
||||
VERIFY(i == 1);
|
||||
}
|
||||
//test_assignment
|
||||
a=d;
|
||||
a=b;
|
||||
//make_tuple
|
||||
make_tuple(0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
|
||||
//tuple_size
|
||||
VERIFY(tuple_size<type3>::value == 10);
|
||||
//tuple_element
|
||||
{
|
||||
foo q1;
|
||||
tuple_element<0,type3>::type q2(q1);
|
||||
tuple_element<9,type3>::type q3(q1);
|
||||
}
|
||||
}
|
65
libstdc++-v3/testsuite/20_util/tuple/cons/constructor.cc
Normal file
65
libstdc++-v3/testsuite/20_util/tuple/cons/constructor.cc
Normal file
|
@ -0,0 +1,65 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
|
||||
// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// Tuple
|
||||
|
||||
#include <tuple>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
int x1=0,x2=0;
|
||||
const int &z1=x1;
|
||||
|
||||
// Test empty constructor
|
||||
tuple<> ta;
|
||||
tuple<int,int> tb;
|
||||
// Test construction from values
|
||||
tuple<int,int> tc(x1,x2);
|
||||
tuple<int,int&> td(x1,x2);
|
||||
tuple<const int&> te(z1);
|
||||
x1=1;
|
||||
x2=1;
|
||||
VERIFY(get<0>(td) == 0 && get<1>(td) == 1 && get<0>(te) == 1);
|
||||
|
||||
// Test identical tuple copy constructor
|
||||
tuple<int,int> tf(tc);
|
||||
tuple<int,int> tg(td);
|
||||
tuple<const int&> th(te);
|
||||
// Test different tuple copy constructor
|
||||
tuple<int,double> ti(tc);
|
||||
tuple<int,double> tj(td);
|
||||
//tuple<int&, int&> tk(tc);
|
||||
tuple<const int&, const int&> tl(tc);
|
||||
tuple<const int&, const int&> tm(tl);
|
||||
// Test constructing from a pair
|
||||
pair<int,int> pair1(1,1);
|
||||
const pair<int,int> pair2(pair1);
|
||||
tuple<int,int> tn(pair1);
|
||||
tuple<int,const int&> to(pair1);
|
||||
tuple<int,int> tp(pair2);
|
||||
tuple<int,const int&> tq(pair2);
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
//
|
||||
// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// Tuple
|
||||
|
||||
#include <tuple>
|
||||
#include <utility>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
// libstdc++/23978
|
||||
void test01()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
pair<int, int> p(1, 2);
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
tie(x, y) = p;
|
||||
VERIFY( x == 1 && y == 2 );
|
||||
}
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
test01();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
|
||||
// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// Tuple
|
||||
|
||||
#include <tuple>
|
||||
#include <functional>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
int i=0;
|
||||
make_tuple(1,2,4.0);
|
||||
make_tuple(ref(i)) = tuple<int>(1);
|
||||
VERIFY(i == 1);
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
|
||||
// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// Tuple
|
||||
|
||||
#include <tuple>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
int x1 = 0;
|
||||
int x2 = 0;
|
||||
int y1 = 0;
|
||||
int y2 = 0;
|
||||
tuple<int,int> ta(1,1);
|
||||
tuple<const int&,const int&> tc(x1,x2);
|
||||
tie(y1,y2)=ta;
|
||||
VERIFY(y1 == 1 && y2 == 1);
|
||||
tie(y1,y2)=tc;
|
||||
VERIFY(y1 == 0 && y2 == 0);
|
||||
}
|
45
libstdc++-v3/testsuite/20_util/tuple/element_access/get.cc
Normal file
45
libstdc++-v3/testsuite/20_util/tuple/element_access/get.cc
Normal file
|
@ -0,0 +1,45 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
|
||||
// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// Tuple
|
||||
|
||||
#include <tuple>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
int j=1;
|
||||
const int k=2;
|
||||
tuple<int,int &,const int&> a(0,j,k);
|
||||
const tuple<int,int &,const int&> b(1,j,k);
|
||||
VERIFY(get<0>(a)==0 && get<1>(a)==1 && get<2>(a)==2);
|
||||
get<0>(a)=3;
|
||||
get<1>(a)=4;
|
||||
VERIFY(get<0>(a)==3 && get<1>(a)==4);
|
||||
VERIFY(j==4);
|
||||
get<1>(b)=5;
|
||||
VERIFY(get<0>(b)==1 && get<1>(b)==5 && get<2>(b)==2);
|
||||
VERIFY(j==5);
|
||||
}
|
|
@ -28,6 +28,6 @@
|
|||
// invalidate any other reasons why the executable file might be covered by
|
||||
// the GNU General Public License.
|
||||
|
||||
#include <tr1/tuple>
|
||||
#include <tuple>
|
||||
|
||||
template class std::tr1::tuple<short, int, double>;
|
||||
template class std::tuple<short, int, double>;
|
||||
|
|
38
libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc
Normal file
38
libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc
Normal file
|
@ -0,0 +1,38 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
|
||||
// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// Tuple
|
||||
|
||||
#include <tuple>
|
||||
|
||||
using namespace std;
|
||||
|
||||
struct foo
|
||||
{ };
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
// As foo isn't constructible from anything else, this
|
||||
// lets us check if type is returning foo when it should
|
||||
foo q1;
|
||||
tuple_element<0,tuple<foo,void,int> >::type q2(q1);
|
||||
tuple_element<2,tuple<void,int,foo> >::type q3(q1);
|
||||
}
|
39
libstdc++-v3/testsuite/20_util/tuple/tuple_size.cc
Normal file
39
libstdc++-v3/testsuite/20_util/tuple/tuple_size.cc
Normal file
|
@ -0,0 +1,39 @@
|
|||
// { dg-options "-std=gnu++0x" }
|
||||
|
||||
// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
|
||||
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
|
||||
// USA.
|
||||
|
||||
// Tuple
|
||||
|
||||
#include <tuple>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
VERIFY(tuple_size<tuple<> >::value == 0);
|
||||
VERIFY(tuple_size<tuple<int> >::value == 1);
|
||||
VERIFY(tuple_size<tuple<void> >::value == 1);
|
||||
typedef tuple<int,const int&,void> test_tuple1;
|
||||
VERIFY(tuple_size<test_tuple1>::value == 3);
|
||||
VERIFY(tuple_size<tuple<tuple<void> > >::value == 1);
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
// 2004-09-23 Chris Jefferson <chris@bubblescope.net>
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2004, 2005, 2006, 2007 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
|
||||
|
@ -25,6 +25,8 @@
|
|||
|
||||
using namespace std::tr1;
|
||||
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
#define TEST1(x) VERIFY( x == x && !(x != x) && x <= x && !(x < x) )
|
||||
|
||||
int
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// 2004-09-23 Chris Jefferson <chris@bubblescope.net>
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2004, 2005, 2006, 2007 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
|
||||
|
@ -28,6 +28,8 @@ using namespace std::tr1;
|
|||
int
|
||||
main()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
tuple<> ta;
|
||||
tuple<> tb;
|
||||
ta = tb;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// 2004-09-23 Chris Jefferson <chris@bubblescope.net>
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2004, 2005, 2006, 2007 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
|
||||
|
@ -33,6 +33,8 @@ struct foo
|
|||
void
|
||||
test_constructors()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
int x1=0,x2=0;
|
||||
const int &z1=x1;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// 2004-09-23 Chris Jefferson <chris@bubblescope.net>
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2004, 2005, 2006, 2007 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
|
||||
|
@ -29,6 +29,8 @@ using std::pair;
|
|||
int
|
||||
main()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
int x1=0,x2=0;
|
||||
const int &z1=x1;
|
||||
|
||||
|
|
|
@ -29,6 +29,8 @@ using namespace std::tr1;
|
|||
int
|
||||
main()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
int i=0;
|
||||
make_tuple(1,2,4.0);
|
||||
make_tuple(ref(i)) = tuple<int>(1);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// 2004-09-23 Chris Jefferson <chris@bubblescope.net>
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2004, 2005, 2006, 2007 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
|
||||
|
@ -28,6 +28,8 @@ using namespace std::tr1;
|
|||
int
|
||||
main()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
int x1 = 0;
|
||||
int x2 = 0;
|
||||
int y1 = 0;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// 2004-09-23 Chris Jefferson <chris@bubblescope.net>
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2004, 2005, 2006, 2007 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
|
||||
|
@ -28,6 +28,8 @@ using namespace std::tr1;
|
|||
int
|
||||
main()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
int j=1;
|
||||
const int k=2;
|
||||
tuple<int,int &,const int&> a(0,j,k);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// 2004-09-23 Chris Jefferson <chris@bubblescope.net>
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2004, 2005, 2006, 2007 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
|
||||
|
@ -31,7 +31,7 @@ struct foo
|
|||
int
|
||||
main()
|
||||
{
|
||||
// As foo isn't constructable from anything else, this
|
||||
// As foo isn't constructible from anything else, this
|
||||
// lets us check if type is returning foo when it should
|
||||
foo q1;
|
||||
tuple_element<0,tuple<foo,void,int> >::type q2(q1);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// 2004-09-23 Chris Jefferson <chris@bubblescope.net>
|
||||
|
||||
// Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
// Copyright (C) 2004, 2005, 2006, 2007 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
|
||||
|
@ -28,6 +28,8 @@ using namespace std::tr1;
|
|||
int
|
||||
main()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
|
||||
VERIFY(tuple_size<tuple<> >::value == 0);
|
||||
VERIFY(tuple_size<tuple<int> >::value == 1);
|
||||
VERIFY(tuple_size<tuple<void> >::value == 1);
|
||||
|
|
Loading…
Add table
Reference in a new issue