re PR c++/13658 ([testcase] namespace association vs. templates part one)
2004-03-08 Benjamin Kosnik <bkoz@redhat.com> PR c++/13658 * testsuite/23_containers/deque/modifiers/swap.cc: New. * testsuite/23_containers/list/modifiers/swap.cc: New. * testsuite/23_containers/map/modifiers/swap.cc: New. * testsuite/23_containers/multimap/modifiers/swap.cc: New. * testsuite/23_containers/multiset/modifiers/swap.cc: New. * testsuite/23_containers/set/modifiers/swap.cc: New. * testsuite/23_containers/vector/modifiers/swap.cc: New. From-SVN: r79151
This commit is contained in:
parent
5340bbea5a
commit
f1c4ca32d0
|
@ -1,3 +1,14 @@
|
|||
2004-03-08 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
PR c++/13658
|
||||
* testsuite/23_containers/deque/modifiers/swap.cc: New.
|
||||
* testsuite/23_containers/list/modifiers/swap.cc: New.
|
||||
* testsuite/23_containers/map/modifiers/swap.cc: New.
|
||||
* testsuite/23_containers/multimap/modifiers/swap.cc: New.
|
||||
* testsuite/23_containers/multiset/modifiers/swap.cc: New.
|
||||
* testsuite/23_containers/set/modifiers/swap.cc: New.
|
||||
* testsuite/23_containers/vector/modifiers/swap.cc: New.
|
||||
|
||||
2004-03-08 Petur Runolfsson <peturr02@ru.is>
|
||||
|
||||
PR libstdc++/12658
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
// Copyright (C) 2004 Free Software Foundation
|
||||
//
|
||||
// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
#include <deque>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
struct T { int i; };
|
||||
|
||||
int swap_calls;
|
||||
|
||||
namespace std
|
||||
{
|
||||
template<>
|
||||
void
|
||||
deque<T, allocator<T> >::swap(deque<T, allocator<T> >&)
|
||||
{ ++swap_calls; }
|
||||
}
|
||||
|
||||
// Should use deque specialization for swap.
|
||||
void test01()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
std::deque<T> A;
|
||||
std::deque<T> B;
|
||||
swap_calls = 0;
|
||||
std::swap(A, B);
|
||||
VERIFY(1 == swap_calls);
|
||||
}
|
||||
|
||||
// Should use deque specialization for swap.
|
||||
void test02()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
using namespace std;
|
||||
deque<T> A;
|
||||
deque<T> B;
|
||||
swap_calls = 0;
|
||||
swap(A, B);
|
||||
VERIFY(1 == swap_calls);
|
||||
}
|
||||
|
||||
// See c++/13658 for background info.
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
test02();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
// Copyright (C) 2004 Free Software Foundation
|
||||
//
|
||||
// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
#include <list>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
struct T { int i; };
|
||||
|
||||
int swap_calls;
|
||||
|
||||
namespace std
|
||||
{
|
||||
template<>
|
||||
void
|
||||
list<T, allocator<T> >::swap(list<T, allocator<T> >&)
|
||||
{ ++swap_calls; }
|
||||
}
|
||||
|
||||
// Should use list specialization for swap.
|
||||
void test01()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
std::list<T> A;
|
||||
std::list<T> B;
|
||||
swap_calls = 0;
|
||||
std::swap(A, B);
|
||||
VERIFY(1 == swap_calls);
|
||||
}
|
||||
|
||||
// Should use list specialization for swap.
|
||||
void test02()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
using namespace std;
|
||||
list<T> A;
|
||||
list<T> B;
|
||||
swap_calls = 0;
|
||||
swap(A, B);
|
||||
VERIFY(1 == swap_calls);
|
||||
}
|
||||
|
||||
// See c++/13658 for background info.
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
test02();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
// Copyright (C) 2004 Free Software Foundation
|
||||
//
|
||||
// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
#include <map>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
struct T { int i; };
|
||||
|
||||
int swap_calls;
|
||||
|
||||
namespace std
|
||||
{
|
||||
template<>
|
||||
void
|
||||
map<T, int>::swap(map<T, int>&)
|
||||
{ ++swap_calls; }
|
||||
}
|
||||
|
||||
// Should use map specialization for swap.
|
||||
void test01()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
std::map<T, int> A;
|
||||
std::map<T, int> B;
|
||||
swap_calls = 0;
|
||||
std::swap(A, B);
|
||||
VERIFY(1 == swap_calls);
|
||||
}
|
||||
|
||||
// Should use map specialization for swap.
|
||||
void test02()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
using namespace std;
|
||||
map<T, int> A;
|
||||
map<T, int> B;
|
||||
swap_calls = 0;
|
||||
swap(A, B);
|
||||
VERIFY(1 == swap_calls);
|
||||
}
|
||||
|
||||
// See c++/13658 for background info.
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
test02();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
// Copyright (C) 2004 Free Software Foundation
|
||||
//
|
||||
// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
#include <map>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
struct T { int i; };
|
||||
|
||||
int swap_calls;
|
||||
|
||||
namespace std
|
||||
{
|
||||
template<>
|
||||
void
|
||||
multimap<T, int>::swap(multimap<T, int>&)
|
||||
{ ++swap_calls; }
|
||||
}
|
||||
|
||||
// Should use multimap specialization for swap.
|
||||
void test01()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
std::multimap<T, int> A;
|
||||
std::multimap<T, int> B;
|
||||
swap_calls = 0;
|
||||
std::swap(A, B);
|
||||
VERIFY(1 == swap_calls);
|
||||
}
|
||||
|
||||
// Should use multimap specialization for swap.
|
||||
void test02()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
using namespace std;
|
||||
multimap<T, int> A;
|
||||
multimap<T, int> B;
|
||||
swap_calls = 0;
|
||||
swap(A, B);
|
||||
VERIFY(1 == swap_calls);
|
||||
}
|
||||
|
||||
// See c++/13658 for background info.
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
test02();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
// Copyright (C) 2004 Free Software Foundation
|
||||
//
|
||||
// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
#include <set>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
struct T { int i; };
|
||||
|
||||
int swap_calls;
|
||||
|
||||
namespace std
|
||||
{
|
||||
template<>
|
||||
void
|
||||
multiset<T>::swap(multiset<T>&)
|
||||
{ ++swap_calls; }
|
||||
}
|
||||
|
||||
// Should use multiset specialization for swap.
|
||||
void test01()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
std::multiset<T> A;
|
||||
std::multiset<T> B;
|
||||
swap_calls = 0;
|
||||
std::swap(A, B);
|
||||
VERIFY(1 == swap_calls);
|
||||
}
|
||||
|
||||
// Should use multiset specialization for swap.
|
||||
void test02()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
using namespace std;
|
||||
multiset<T> A;
|
||||
multiset<T> B;
|
||||
swap_calls = 0;
|
||||
swap(A, B);
|
||||
VERIFY(1 == swap_calls);
|
||||
}
|
||||
|
||||
// See c++/13658 for background info.
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
test02();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
// Copyright (C) 2004 Free Software Foundation
|
||||
//
|
||||
// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
#include <set>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
struct T { int i; };
|
||||
|
||||
int swap_calls;
|
||||
|
||||
namespace std
|
||||
{
|
||||
template<>
|
||||
void
|
||||
set<T>::swap(set<T>&)
|
||||
{ ++swap_calls; }
|
||||
}
|
||||
|
||||
// Should use set specialization for swap.
|
||||
void test01()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
std::set<T> A;
|
||||
std::set<T> B;
|
||||
swap_calls = 0;
|
||||
std::swap(A, B);
|
||||
VERIFY(1 == swap_calls);
|
||||
}
|
||||
|
||||
// Should use set specialization for swap.
|
||||
void test02()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
using namespace std;
|
||||
set<T> A;
|
||||
set<T> B;
|
||||
swap_calls = 0;
|
||||
swap(A, B);
|
||||
VERIFY(1 == swap_calls);
|
||||
}
|
||||
|
||||
// See c++/13658 for background info.
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
test02();
|
||||
return 0;
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
// Copyright (C) 2004 Free Software Foundation
|
||||
//
|
||||
// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
#include <vector>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
struct T { int i; };
|
||||
|
||||
int swap_calls;
|
||||
|
||||
namespace std
|
||||
{
|
||||
template<>
|
||||
void
|
||||
vector<T, allocator<T> >::swap(vector<T, allocator<T> >&)
|
||||
{ ++swap_calls; }
|
||||
}
|
||||
|
||||
// Should use vector specialization for swap.
|
||||
void test01()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
std::vector<T> A;
|
||||
std::vector<T> B;
|
||||
swap_calls = 0;
|
||||
std::swap(A, B);
|
||||
VERIFY(1 == swap_calls);
|
||||
}
|
||||
|
||||
// Should use vector specialization for swap.
|
||||
void test02()
|
||||
{
|
||||
bool test __attribute__((unused)) = true;
|
||||
using namespace std;
|
||||
vector<T> A;
|
||||
vector<T> B;
|
||||
swap_calls = 0;
|
||||
swap(A, B);
|
||||
VERIFY(1 == swap_calls);
|
||||
}
|
||||
|
||||
// See c++/13658 for background info.
|
||||
int main()
|
||||
{
|
||||
test01();
|
||||
test02();
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue