]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/23_containers/vector/modifiers/1.cc
1.cc: Provide explicit instantiations for non-weak systems.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 23_containers / vector / modifiers / 1.cc
CommitLineData
b2dad0e3
BK
1// 1999-11-09 bkoz
2
f90e600a 3// Copyright (C) 1999, 2001, 2004 Free Software Foundation, Inc.
b2dad0e3
BK
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 2, or (at your option)
9// any later version.
10
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.
15
16// You should have received a copy of the GNU General Public License along
17// with this library; see the file COPYING. If not, write to the Free
18// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
19// USA.
20
21// 23.2.4.3 vector modifiers
22
23#include <vector>
fe413112 24#include "testsuite_hooks.h"
02d92e3b 25
11f10e6b 26bool test __attribute__((unused)) = true;
b2dad0e3
BK
27
28template<typename T>
29 struct A { };
30
31struct B { };
32
33// vector::insert(iterator, inputiterator first, inputiterator last)
02d92e3b
SW
34void
35test01()
b2dad0e3 36{
b2dad0e3
BK
37 // POD types
38 typedef std::vector<int> vec_POD;
39 vec_POD vec01;
40 int i01 = 5;
41 int* pi01 = &i01;
42 vec01.insert(vec01.begin(), pi01, pi01 + 1);
43
44 // non POD types
45 typedef std::vector< A<B> > vec_nonPOD;
46 vec_nonPOD vec02;
47 A<B> np01;
48 A<B>* pnp01 = &np01;
49 vec02.insert(vec02.begin(), pnp01, pnp01 + 1);
02d92e3b
SW
50}
51
f90e600a
BK
52#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
53// Explicitly instantiate for systems with no COMDAT or weak support.
54template class __gnu_cxx::__mt_alloc<int>;
55template class __gnu_cxx::__mt_alloc<A<B> >;
56#endif
57
b2dad0e3
BK
58int main()
59{
60 test01();
17472bb6 61 return 0;
b2dad0e3 62}