183 std::__detail::__return_temporary_buffer(_M_buffer, _M_len);
196 struct __uninitialized_construct_buf_dispatch
198 template<
typename _Po
inter,
typename _ForwardIterator>
200 __ucr(_Pointer __first, _Pointer __last,
201 _ForwardIterator __seed)
203 if (__first == __last)
206 _Pointer __cur = __first;
210 _GLIBCXX_MOVE(*__seed));
211 _Pointer __prev = __cur;
213 for(; __cur != __last; ++__cur, ++__prev)
215 _GLIBCXX_MOVE(*__prev));
216 *__seed = _GLIBCXX_MOVE(*__prev);
221 __throw_exception_again;
227 struct __uninitialized_construct_buf_dispatch<true>
229 template<
typename _Po
inter,
typename _ForwardIterator>
231 __ucr(_Pointer, _Pointer, _ForwardIterator) { }
244 template<
typename _Po
inter,
typename _ForwardIterator>
246 __uninitialized_construct_buf(_Pointer __first, _Pointer __last,
247 _ForwardIterator __seed)
252 std::__uninitialized_construct_buf_dispatch<
253 __has_trivial_constructor(_ValueType)>::
254 __ucr(__first, __last, __seed);
257#pragma GCC diagnostic push
258#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
259 template<
typename _ForwardIterator,
typename _Tp>
262 : _M_original_len(__original_len), _M_len(0), _M_buffer(0)
265 std::get_temporary_buffer<value_type>(_M_original_len));
273 _M_buffer = __p.
first;
278 std::__detail::__return_temporary_buffer(__p.
first, __p.
second);
279 __throw_exception_again;