57 #ifndef _STL_TEMPBUF_H 
   58 #define _STL_TEMPBUF_H 1 
   63 namespace std _GLIBCXX_VISIBILITY(default)
 
   65 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   84   template<
typename _Tp>
 
   88       const ptrdiff_t __max =
 
   89     __gnu_cxx::__numeric_traits<ptrdiff_t>::__max / 
sizeof(_Tp);
 
   95       _Tp* __tmp = 
static_cast<_Tp*
>(::operator 
new(__len * 
sizeof(_Tp), 
 
  111   template<
typename _Tp>
 
  114     { ::operator 
delete(__p, std::nothrow); }
 
  122   template<
typename _ForwardIterator, 
typename _Tp>
 
  126       __glibcxx_class_requires(_ForwardIterator, _ForwardIteratorConcept)
 
  129       typedef _Tp         value_type;
 
  130       typedef value_type* pointer;
 
  131       typedef pointer     iterator;
 
  132       typedef ptrdiff_t   size_type;
 
  135       size_type  _M_original_len;
 
  148       { 
return _M_original_len; }
 
  153       { 
return _M_buffer; }
 
  158       { 
return _M_buffer + _M_len; }
 
  182     struct __uninitialized_construct_buf_dispatch
 
  184       template<
typename _ForwardIterator, 
typename _Tp>
 
  186         __ucr(_ForwardIterator __first, _ForwardIterator __last,
 
  189       if(__first == __last)
 
  192       _ForwardIterator __cur = __first;
 
  196                   _GLIBCXX_MOVE(__value));
 
  197           _ForwardIterator __prev = __cur;
 
  199           for(; __cur != __last; ++__cur, ++__prev)
 
  201                 _GLIBCXX_MOVE(*__prev));
 
  202           __value = _GLIBCXX_MOVE(*__prev);
 
  207           __throw_exception_again;
 
  213     struct __uninitialized_construct_buf_dispatch<true>
 
  215       template<
typename _ForwardIterator, 
typename _Tp>
 
  217         __ucr(_ForwardIterator, _ForwardIterator, _Tp&) { }
 
  230   template<
typename _ForwardIterator, 
typename _Tp>
 
  232     __uninitialized_construct_buf(_ForwardIterator __first,
 
  233                   _ForwardIterator __last,
 
  236       typedef typename std::iterator_traits<_ForwardIterator>::value_type
 
  239       std::__uninitialized_construct_buf_dispatch<
 
  240         __has_trivial_constructor(_ValueType)>::
 
  241       __ucr(__first, __last, __value);
 
  244   template<
typename _ForwardIterator, 
typename _Tp>
 
  247     : _M_original_len(std::
distance(__first, __last)),
 
  248       _M_len(0), _M_buffer(0)
 
  253                         value_type>(_M_original_len));
 
  254       _M_buffer = __p.
first;
 
  257         std::__uninitialized_construct_buf(_M_buffer, _M_buffer + _M_len,
 
  265       __throw_exception_again;
 
  269 _GLIBCXX_END_NAMESPACE_VERSION
 
Struct holding two objects of arbitrary type. 
_T1 first
second_type is the second bound type 
void _Destroy(_Tp *__pointer)
_Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
pair< _Tp *, ptrdiff_t > get_temporary_buffer(ptrdiff_t __len)
Allocates a temporary buffer. 
iterator end()
As per Table mumble. 
void return_temporary_buffer(_Tp *__p)
The companion to get_temporary_buffer(). 
void _Construct(_T1 *__p, _Args &&...__args)
size_type requested_size() const 
Returns the size requested by the constructor; may be >size(). 
iterator_traits< _InputIterator >::difference_type distance(_InputIterator __first, _InputIterator __last)
A generalization of pointer arithmetic. 
_T2 second
first is a copy of the first object 
iterator begin()
As per Table mumble. 
size_type size() const 
As per Table mumble.