57 #ifndef _STL_TEMPBUF_H
58 #define _STL_TEMPBUF_H 1
64 _GLIBCXX_BEGIN_NAMESPACE(std)
83 template<typename _Tp>
87 const ptrdiff_t __max =
88 __gnu_cxx::__numeric_traits<ptrdiff_t>::__max /
sizeof(_Tp);
94 _Tp* __tmp =
static_cast<_Tp*
>(::operator
new(__len *
sizeof(_Tp),
110 template<
typename _Tp>
113 { ::operator
delete(__p, std::nothrow); }
121 template<
typename _ForwardIterator,
typename _Tp>
125 __glibcxx_class_requires(_ForwardIterator, _ForwardIteratorConcept)
128 typedef _Tp value_type;
129 typedef value_type* pointer;
130 typedef pointer iterator;
131 typedef ptrdiff_t size_type;
134 size_type _M_original_len;
147 {
return _M_original_len; }
152 {
return _M_buffer; }
157 {
return _M_buffer + _M_len; }
173 _Temporary_buffer(
const _Temporary_buffer&);
176 operator=(
const _Temporary_buffer&);
179 template<
typename _ForwardIterator,
typename _Tp>
180 _Temporary_buffer<_ForwardIterator, _Tp>::
181 _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last)
182 : _M_original_len(std::
distance(__first, __last)),
183 _M_len(0), _M_buffer(0)
188 value_type>(_M_original_len));
189 _M_buffer = __p.
first;
191 if (!__is_pod(_Tp) && _M_len > 0)
199 __throw_exception_again;
203 _GLIBCXX_END_NAMESPACE
size_type size() const
As per Table mumble.
pair< _Tp *, ptrdiff_t > get_temporary_buffer(ptrdiff_t __len)
Allocates a temporary buffer.
pair holds two objects of arbitrary type.
iterator end()
As per Table mumble.
void distance(_InputIterator __first, _InputIterator __last, _Distance &__n)
_T2 second
second is a copy of the second object
size_type requested_size() const
Returns the size requested by the constructor; may be >size().
_T1 first
first is a copy of the first object
void _Destroy(_Tp *__pointer)
iterator begin()
As per Table mumble.
void return_temporary_buffer(_Tp *__p)
The companion to get_temporary_buffer().
void uninitialized_fill_n(_ForwardIterator __first, _Size __n, const _Tp &__x)
Copies the value x into the range [first,first+n).