Index: doc/xml/manual/intro.xml =================================================================== --- doc/xml/manual/intro.xml (revision 136738) +++ doc/xml/manual/intro.xml (working copy) @@ -666,8 +666,15 @@ Implement the int -> size_t replacements. + 776: + Undescribed assign function of std::array + + In C++0x mode, remove assign, add fill. + + 778: - std::bitset does not have any constructor taking a string literal + std::bitset does not have any constructor taking a string + literal Add it. Index: include/tr1_impl/array =================================================================== --- include/tr1_impl/array (revision 136738) +++ include/tr1_impl/array (working copy) @@ -56,11 +56,16 @@ // No explicit construct/copy/destroy for aggregate type. - void + void +#ifdef _GLIBCXX_INCLUDE_AS_CXX0X + // DR 776. + fill(const value_type& __u) +#else assign(const value_type& __u) +#endif { std::fill_n(begin(), size(), __u); } - void + void swap(array& __other) { std::swap_ranges(begin(), end(), __other.begin()); } @@ -74,7 +79,7 @@ { return const_iterator(&_M_instance[0]); } iterator - end() + end() { return iterator(&_M_instance[_Nm]); } const_iterator Index: testsuite/23_containers/array/requirements/fill.cc =================================================================== --- testsuite/23_containers/array/requirements/fill.cc (revision 0) +++ testsuite/23_containers/array/requirements/fill.cc (revision 0) @@ -0,0 +1,47 @@ +// { dg-options "-std=gnu++0x" } + +// 2008-06-13 Paolo Carlini +// +// Copyright (C) 2008 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. + +#include +#include + +// DR 776. Undescribed assign function of std::array. +void test01() +{ + bool test __attribute__((unused)) = true; + + const size_t len = 3; + typedef std::array array_type; + + array_type a = { { 0, 1, 2 } }; + const int value = 5; + + a.fill(value); + VERIFY( a[0] == value ); + VERIFY( a[1] == value ); + VERIFY( a[2] == value ); +} + +int main() +{ + test01(); + return 0; +}