diff options
| author | redi <redi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-06 00:06:42 +0000 |
|---|---|---|
| committer | redi <redi@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-06 00:06:42 +0000 |
| commit | 3edec8c4a20d04401dd877b92b282946475c41be (patch) | |
| tree | a0c6c1ab914365cdd8c1d0ced44ef0e6d6774e1a /libstdc++-v3/include/profile | |
| parent | 9a28605ae35989708fa24cb316f8e722e51f2b45 (diff) | |
| download | ppe42-gcc-3edec8c4a20d04401dd877b92b282946475c41be.tar.gz ppe42-gcc-3edec8c4a20d04401dd877b92b282946475c41be.zip | |
* include/profile/deque: Constrain InputIterator parameters.
* include/profile/forward_list: Likewise.
* include/profile/list: Likewise.
* include/profile/map.h: Likewise.
* include/profile/multimap.h: Likewise.
* include/profile/set.h: Likewise.
* include/profile/multiset.h: Likewise.
* include/profile/vector: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193196 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/profile')
| -rw-r--r-- | libstdc++-v3/include/profile/deque | 23 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/forward_list | 3 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/list | 28 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/map.h | 12 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/multimap.h | 10 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/multiset.h | 12 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/set.h | 14 | ||||
| -rw-r--r-- | libstdc++-v3/include/profile/vector | 16 |
8 files changed, 100 insertions, 18 deletions
diff --git a/libstdc++-v3/include/profile/deque b/libstdc++-v3/include/profile/deque index 48a18c984d9..99cc46524a6 100644 --- a/libstdc++-v3/include/profile/deque +++ b/libstdc++-v3/include/profile/deque @@ -1,6 +1,6 @@ // Profiling deque implementation -*- C++ -*- -// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. +// Copyright (C) 2009-2012 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 @@ -79,7 +79,12 @@ namespace __profile : _Base(__n, __value, __a) { } #endif - template<class _InputIterator> +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else + template<typename _InputIterator> +#endif deque(_InputIterator __first, _InputIterator __last, const _Allocator& __a = _Allocator()) : _Base(__first, __last, __a) @@ -129,7 +134,12 @@ namespace __profile } #endif - template<class _InputIterator> +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else + template<typename _InputIterator> +#endif void assign(_InputIterator __first, _InputIterator __last) { @@ -343,7 +353,12 @@ namespace __profile _Base::insert(__position, __n, __x); } - template<class _InputIterator> +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else + template<typename _InputIterator> +#endif void insert(iterator __position, _InputIterator __first, _InputIterator __last) diff --git a/libstdc++-v3/include/profile/forward_list b/libstdc++-v3/include/profile/forward_list index a44ea7aeeb4..9cb58202f33 100644 --- a/libstdc++-v3/include/profile/forward_list +++ b/libstdc++-v3/include/profile/forward_list @@ -77,7 +77,8 @@ namespace __profile : _Base(__n, __value, __al) { } - template<typename _InputIterator> + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> forward_list(_InputIterator __first, _InputIterator __last, const _Alloc& __al = _Alloc()) : _Base(__first, __last, __al) diff --git a/libstdc++-v3/include/profile/list b/libstdc++-v3/include/profile/list index 33b1ae64d87..2f8535e946e 100644 --- a/libstdc++-v3/include/profile/list +++ b/libstdc++-v3/include/profile/list @@ -1,6 +1,6 @@ // Profiling list implementation -*- C++ -*- -// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. +// Copyright (C) 2009-2012 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 @@ -99,7 +99,12 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > } #endif +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else template<class _InputIterator> +#endif list(_InputIterator __first, _InputIterator __last, const _Allocator& __a = _Allocator()) : _Base(__first, __last, __a) @@ -171,7 +176,12 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > { _Base::assign(__l); } #endif +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else template<class _InputIterator> +#endif void assign(_InputIterator __first, _InputIterator __last) { _Base::assign(__first, __last); } @@ -328,7 +338,8 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > emplace(iterator __position, _Args&&... __args) { return iterator(_Base::emplace(__position.base(), - std::forward<_Args>(__args)...)); + std::forward<_Args>(__args)...), + this); } #endif @@ -363,14 +374,19 @@ template<typename _Tp, typename _Allocator = std::allocator<_Tp> > _Base::insert(__position.base(), __n, __x); } +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else template<class _InputIterator> +#endif void insert(iterator __position, _InputIterator __first, _InputIterator __last) - { - _M_profile_insert(this, __position, size()); - _Base::insert(__position.base(), __first, __last); - } + { + _M_profile_insert(this, __position, size()); + _Base::insert(__position.base(), __first, __last); + } iterator erase(iterator __position) diff --git a/libstdc++-v3/include/profile/map.h b/libstdc++-v3/include/profile/map.h index dcc69313867..fe2f4564d0c 100644 --- a/libstdc++-v3/include/profile/map.h +++ b/libstdc++-v3/include/profile/map.h @@ -69,7 +69,12 @@ namespace __profile : _Base(__comp, __a) { __profcxx_map_to_unordered_map_construct(this); } +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else template<typename _InputIterator> +#endif map(_InputIterator __first, _InputIterator __last, const _Compare& __comp = _Compare(), const _Allocator& __a = _Allocator()) @@ -252,7 +257,7 @@ namespace __profile emplace_hint(const_iterator __pos, _Args&&... __args) { size_type size_before = size(); - auto __res = _Base::emplace_hint(__pos.base(), + auto __res = _Base::emplace_hint(__pos, std::forward<_Args>(__args)...); __profcxx_map_to_unordered_map_insert(this, size_before, size() - size_before); @@ -326,7 +331,12 @@ namespace __profile } #endif +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else template<typename _InputIterator> +#endif void insert(_InputIterator __first, _InputIterator __last) { diff --git a/libstdc++-v3/include/profile/multimap.h b/libstdc++-v3/include/profile/multimap.h index 2268161365b..42662af363e 100644 --- a/libstdc++-v3/include/profile/multimap.h +++ b/libstdc++-v3/include/profile/multimap.h @@ -68,7 +68,12 @@ namespace __profile const _Allocator& __a = _Allocator()) : _Base(__comp, __a) { } +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else template<typename _InputIterator> +#endif multimap(_InputIterator __first, _InputIterator __last, const _Compare& __comp = _Compare(), const _Allocator& __a = _Allocator()) @@ -234,7 +239,12 @@ namespace __profile std::forward<_Pair>(__x))); } #endif +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else template<typename _InputIterator> +#endif void insert(_InputIterator __first, _InputIterator __last) { _Base::insert(__first, __last); } diff --git a/libstdc++-v3/include/profile/multiset.h b/libstdc++-v3/include/profile/multiset.h index f76b4fac6d8..358879726d9 100644 --- a/libstdc++-v3/include/profile/multiset.h +++ b/libstdc++-v3/include/profile/multiset.h @@ -1,6 +1,6 @@ // Profiling multiset implementation -*- C++ -*- -// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. +// Copyright (C) 2009-2012 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 @@ -68,7 +68,12 @@ namespace __profile const _Allocator& __a = _Allocator()) : _Base(__comp, __a) { } +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else template<typename _InputIterator> +#endif multiset(_InputIterator __first, _InputIterator __last, const _Compare& __comp = _Compare(), const _Allocator& __a = _Allocator()) @@ -215,7 +220,12 @@ namespace __profile { return iterator(_Base::insert(__position, std::move(__x))); } #endif +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else template<typename _InputIterator> +#endif void insert(_InputIterator __first, _InputIterator __last) { _Base::insert(__first, __last); } diff --git a/libstdc++-v3/include/profile/set.h b/libstdc++-v3/include/profile/set.h index c0aa180893f..5aadab8317c 100644 --- a/libstdc++-v3/include/profile/set.h +++ b/libstdc++-v3/include/profile/set.h @@ -1,6 +1,6 @@ // Profiling set implementation -*- C++ -*- -// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. +// Copyright (C) 2009-2012 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 @@ -68,7 +68,12 @@ namespace __profile const _Allocator& __a = _Allocator()) : _Base(__comp, __a) { } +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else template<typename _InputIterator> +#endif set(_InputIterator __first, _InputIterator __last, const _Compare& __comp = _Compare(), const _Allocator& __a = _Allocator()) @@ -230,7 +235,12 @@ namespace __profile { return iterator(_Base::insert(__position, std::move(__x))); } #endif - template <typename _InputIterator> +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else + template<typename _InputIterator> +#endif void insert(_InputIterator __first, _InputIterator __last) { _Base::insert(__first, __last); } diff --git a/libstdc++-v3/include/profile/vector b/libstdc++-v3/include/profile/vector index 8a3e681b847..fcd69627995 100644 --- a/libstdc++-v3/include/profile/vector +++ b/libstdc++-v3/include/profile/vector @@ -1,6 +1,6 @@ // Profiling vector implementation -*- C++ -*- -// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. +// Copyright (C) 2009-2012 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 @@ -109,7 +109,12 @@ namespace __profile } #endif - template<class _InputIterator> +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else + template<typename _InputIterator> +#endif vector(_InputIterator __first, _InputIterator __last, const _Allocator& __a = _Allocator()) : _Base(__first, __last, __a) @@ -401,7 +406,12 @@ namespace __profile _M_profile_resize(this, __old_size, this->capacity()); } - template<class _InputIterator> +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + template<typename _InputIterator, + typename = std::_RequireInputIter<_InputIterator>> +#else + template<typename _InputIterator> +#endif void insert(iterator __position, _InputIterator __first, _InputIterator __last) |

