diff options
Diffstat (limited to 'contrib/libstdc++/include/ext/memory')
| -rw-r--r-- | contrib/libstdc++/include/ext/memory | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/contrib/libstdc++/include/ext/memory b/contrib/libstdc++/include/ext/memory index 5626b70e6af5b..1d93f90ac7abf 100644 --- a/contrib/libstdc++/include/ext/memory +++ b/contrib/libstdc++/include/ext/memory @@ -60,9 +60,10 @@ */ #ifndef _EXT_MEMORY -#define _EXT_MEMORY +#define _EXT_MEMORY 1 #pragma GCC system_header + #include <memory> #include <bits/stl_tempbuf.h> @@ -72,24 +73,23 @@ namespace __gnu_cxx using std::pair; using std::__iterator_category; using std::_Temporary_buffer; - template<typename _InputIter, typename _Size, typename _ForwardIter> pair<_InputIter, _ForwardIter> __uninitialized_copy_n(_InputIter __first, _Size __count, - _ForwardIter __result, - std::input_iterator_tag) + _ForwardIter __result, std::input_iterator_tag) { _ForwardIter __cur = __result; - try { - for ( ; __count > 0 ; --__count, ++__first, ++__cur) - std::_Construct(&*__cur, *__first); - return pair<_InputIter, _ForwardIter>(__first, __cur); - } + try + { + for ( ; __count > 0 ; --__count, ++__first, ++__cur) + std::_Construct(&*__cur, *__first); + return pair<_InputIter, _ForwardIter>(__first, __cur); + } catch(...) { std::_Destroy(__result, __cur); - __throw_exception_again; + __throw_exception_again; } } @@ -108,7 +108,8 @@ namespace __gnu_cxx template<typename _InputIter, typename _Size, typename _ForwardIter> inline pair<_InputIter, _ForwardIter> __uninitialized_copy_n(_InputIter __first, _Size __count, - _ForwardIter __result) { + _ForwardIter __result) + { return __uninitialized_copy_n(__first, __count, __result, __iterator_category(__first)); } @@ -126,7 +127,8 @@ namespace __gnu_cxx template<typename _InputIter, typename _Size, typename _ForwardIter> inline pair<_InputIter, _ForwardIter> uninitialized_copy_n(_InputIter __first, _Size __count, - _ForwardIter __result) { + _ForwardIter __result) + { return __uninitialized_copy_n(__first, __count, __result, __iterator_category(__first)); } @@ -152,19 +154,18 @@ namespace __gnu_cxx * * @ingroup SGIextensions */ - template <class _ForwardIterator, - class _Tp + template <class _ForwardIterator, class _Tp = typename std::iterator_traits<_ForwardIterator>::value_type > struct temporary_buffer : public _Temporary_buffer<_ForwardIterator, _Tp> { /// Requests storage large enough to hold a copy of [first,last). temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) - : _Temporary_buffer<_ForwardIterator, _Tp>(__first, __last) {} + : _Temporary_buffer<_ForwardIterator, _Tp>(__first, __last) { } + /// Destroys objects and frees storage. - ~temporary_buffer() {} + ~temporary_buffer() { } }; - } // namespace __gnu_cxx -#endif /* _EXT_MEMORY */ +#endif |
