X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=libstdc%2B%2B-v3%2Ftestsuite%2F24_iterators%2Finsert_iterator.cc;h=322bccf4ea3a816ec162eeb367381fccb4401314;hp=aee24700d8a0b95aac0abc31950f212e399ceef4;hb=7b2f3869a863b73bd037720d43c714d3c0c93846;hpb=78215b04ae786044da59bfd0b280b7ef98d17d4f diff --git a/libstdc++-v3/testsuite/24_iterators/insert_iterator.cc b/libstdc++-v3/testsuite/24_iterators/insert_iterator.cc index aee24700d8a..322bccf4ea3 100644 --- a/libstdc++-v3/testsuite/24_iterators/insert_iterator.cc +++ b/libstdc++-v3/testsuite/24_iterators/insert_iterator.cc @@ -1,6 +1,6 @@ // 2001-06-21 Benjamin Kosnik -// Copyright (C) 2001 Free Software Foundation, Inc. +// Copyright (C) 2001, 2004 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,12 +29,12 @@ void test01() // Check for required base class. list l; - list::iterator li; + list::iterator li = l.begin(); typedef insert_iterator > test_iterator; typedef iterator base_iterator; test_iterator r_it(l, li); - base_iterator* base = &r_it; + base_iterator* base __attribute__((unused)) = &r_it; // Check for required typedefs typedef test_iterator::value_type value_type; @@ -45,8 +45,39 @@ void test01() typedef test_iterator::container_type container_type; } + + +// Make sure iterator can be instantiated. +template class std::insert_iterator >; + +void test02() +{ + typedef std::insert_iterator > iterator_type; + + std::list li; + std::list::iterator liit = li.begin(); + iterator_type it01(li, liit); + iterator_type it02 = std::inserter(li, liit); +} + +// Check data member 'container' accessible. +class test_dm : public std::insert_iterator > +{ + container_type l; + container_type::iterator i; + container_type* p; +public: + test_dm(): std::insert_iterator >(l, i), p(container) { } +}; + +#if !__GXX_WEAK__ && _MT_ALLOCATOR_H +// Explicitly instantiate for systems with no COMDAT or weak support. +template class __gnu_cxx::__mt_alloc >; +#endif + int main() { test01(); + test02(); return 0; }