# __gnu_cxx::temporary_buffer< _ForwardIterator, _Tp > Struct Template Reference
[STL extensions from SGI]

Inheritance diagram for __gnu_cxx::temporary_buffer< _ForwardIterator, _Tp >:

List of all members.

## Detailed Description

### template<class _ForwardIterator, class _Tp = typename std::iterator_traits<_ForwardIterator>::value_type>
struct __gnu_cxx::temporary_buffer< _ForwardIterator, _Tp >

This class provides similar behavior and semantics of the standard functions get_temporary_buffer() and return_temporary_buffer(), but encapsulated in a type vaguely resembling a standard container.

By default, a temporary_buffer<Iter> stores space for objects of whatever type the Iter iterator points to. It is constructed from a typical [first,last) range, and provides the begin(), end(), size() functions, as well as requested_size(). For non-trivial types, copies of *first will be used to initialize the storage.

`malloc` is used to obtain underlying storage.

Like get_temporary_buffer(), not all the requested memory may be available. Ideally, the created buffer will be large enough to hold a copy of [first,last), but if size() is less than requested_size(), then this didn't happen.

Definition at line 186 of file ext/memory.

## Public Types

- typedef pointer iterator
- typedef value_type * pointer
- typedef ptrdiff_t size_type
- typedef _Tp value_type

## Public Member Functions

- iterator begin ()
- iterator end ()
- size_type requested_size () const
- size_type size () const
- temporary_buffer (_ForwardIterator __first, _ForwardIterator __last)
- ~temporary_buffer ()

## Protected Member Functions

- void _M_initialize_buffer (const _Tp &__val, __false_type)
- void _M_initialize_buffer (const _Tp &, __true_type)

## Protected Attributes

- pointer _M_buffer
- size_type _M_len
- size_type _M_original_len

## Constructor & Destructor Documentation

template<class _ForwardIterator, class _Tp = typename std::iterator_traits<_ForwardIterator>::value_type>

__gnu_cxx::temporary_buffer< _ForwardIterator, _Tp >::temporary_buffer | ( | _ForwardIterator | __first,
|  | _ForwardIterator | __last |
| ) |  |  | `[inline]`

Requests storage large enough to hold a copy of [first,last).

Definition at line 189 of file ext/memory.

template<class _ForwardIterator, class _Tp = typename std::iterator_traits<_ForwardIterator>::value_type>

__gnu_cxx::temporary_buffer< _ForwardIterator, _Tp >::~temporary_buffer | ( |  | ) | `[inline]`

Destroys objects and frees storage.

Definition at line 193 of file ext/memory.

## Member Function Documentation

template<typename _ForwardIterator, typename _Tp>

iterator std::_Temporary_buffer< _ForwardIterator, _Tp >::begin | ( |  | ) | `[inline, inherited]`

As per Table mumble.

Definition at line 113 of file stl_tempbuf.h.

Referenced by std::inplace_merge(), std::stable_partition(), and std::stable_sort().

template<typename _ForwardIterator, typename _Tp>

iterator std::_Temporary_buffer< _ForwardIterator, _Tp >::end | ( |  | ) | `[inline, inherited]`

As per Table mumble.

Definition at line 118 of file stl_tempbuf.h.

template<typename _ForwardIterator, typename _Tp>

size_type std::_Temporary_buffer< _ForwardIterator, _Tp >::requested_size | ( |  | ) | const`[inline, inherited]`

Returns the size requested by the constructor; may be >size().

Definition at line 108 of file stl_tempbuf.h.

Referenced by std::stable_partition().

template<typename _ForwardIterator, typename _Tp>

size_type std::_Temporary_buffer< _ForwardIterator, _Tp >::size | ( |  | ) | const`[inline, inherited]`

As per Table mumble.

Definition at line 103 of file stl_tempbuf.h.

Referenced by std::inplace_merge(), std::stable_partition(), and std::stable_sort().

The documentation for this struct was generated from the following file:

- ext/memory