186 std::__detail::__return_temporary_buffer(_M_buffer, _M_len);
199 struct __uninitialized_construct_buf_dispatch
201 template<
typename _Po
inter,
typename _ForwardIterator>
203 __ucr(_Pointer __first, _Pointer __last,
204 _ForwardIterator __seed)
206 if (__first == __last)
209 _Pointer __cur = __first;
213 _GLIBCXX_MOVE(*__seed));
214 _Pointer __prev = __cur;
216 for(; __cur != __last; ++__cur, ++__prev)
218 _GLIBCXX_MOVE(*__prev));
219 *__seed = _GLIBCXX_MOVE(*__prev);
224 __throw_exception_again;
230 struct __uninitialized_construct_buf_dispatch<true>
232 template<
typename _Po
inter,
typename _ForwardIterator>
234 __ucr(_Pointer, _Pointer, _ForwardIterator) { }
247 template<
typename _Po
inter,
typename _ForwardIterator>
249 __uninitialized_construct_buf(_Pointer __first, _Pointer __last,
250 _ForwardIterator __seed)
255 std::__uninitialized_construct_buf_dispatch<
256 __has_trivial_constructor(_ValueType)>::
257 __ucr(__first, __last, __seed);
260#pragma GCC diagnostic push
261#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
262 template<
typename _ForwardIterator,
typename _Tp>
265 : _M_original_len(__original_len), _M_len(0), _M_buffer(0)
268 std::get_temporary_buffer<value_type>(_M_original_len));
276 _M_buffer = __p.
first;
281 std::__detail::__return_temporary_buffer(__p.
first, __p.
second);
282 __throw_exception_again;