stl_raw_storage_iter.h (raw_storage_iterator::base()): Define (LWG 2454).

* include/bits/stl_raw_storage_iter.h (raw_storage_iterator::base()):
	Define (LWG 2454).
	* testsuite/20_util/raw_storage_iterator/base.cc: New.

From-SVN: r223162
This commit is contained in:
Jonathan Wakely 2015-05-13 14:54:46 +01:00 committed by Jonathan Wakely
parent e6508eaf69
commit 49d50b6b8f
3 changed files with 44 additions and 0 deletions

View File

@ -1,5 +1,9 @@
2015-05-13 Jonathan Wakely <jwakely@redhat.com> 2015-05-13 Jonathan Wakely <jwakely@redhat.com>
* include/bits/stl_raw_storage_iter.h (raw_storage_iterator::base()):
Define (LWG 2454).
* testsuite/20_util/raw_storage_iterator/base.cc: New.
* include/std/future (packaged_task(allocator_arg_t, const A&, F&&): * include/std/future (packaged_task(allocator_arg_t, const A&, F&&):
Remove explicit (LWG 2407). Remove explicit (LWG 2407).

View File

@ -100,6 +100,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
++_M_iter; ++_M_iter;
return __tmp; return __tmp;
} }
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// 2454. Add raw_storage_iterator::base() member
_OutputIterator base() const { return _M_iter; }
}; };
_GLIBCXX_END_NAMESPACE_VERSION _GLIBCXX_END_NAMESPACE_VERSION

View File

@ -0,0 +1,36 @@
// Copyright (C) 2015 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 3, 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 COPYING3. If not see
// <http://www.gnu.org/licenses/>.
// { dg-options "-std=gnu++11" }
#include <memory>
#include <testsuite_hooks.h>
void
test01()
{
int a[2];
auto it = std::raw_storage_iterator<int*, int>(a);
VERIFY( it.base() == a );
VERIFY( (++it).base() == a+1 );
}
int
main()
{
test01();
}