# __gnu_cxx Namespace Reference

This namespace serves two purposes. More...

## Compounds

class | binary_compose
| An SGI extension . More...
struct | constant_binary_fun
| An SGI extension . More...
struct | constant_unary_fun
| An SGI extension . More...
struct | constant_void_fun
| An SGI extension . More...
class | hash_map
class | hash_multimap
class | hash_multiset
class | hash_set
struct | project1st
| An SGI extension . More...
struct | project2nd
| An SGI extension . More...
struct | rb_tree
class | rope
struct | select1st
| An SGI extension . More...
struct | select2nd
| An SGI extension . More...
class | slist
class | stdio_filebuf
| Provides a layer of compatibility for C/POSIX. More...
class | subtractive_rng
struct | temporary_buffer
class | unary_compose
| An SGI extension . More...

## Functions

void | __verbose_terminate_handler ()
template<typename _InputIter, typename _Size, typename _OutputIter> pair< _InputIter, _OutputIter > | copy_n (_InputIter __first, _Size __count, _OutputIter __result)
| Copies the range [first,first+count) into [result,result+count).
template<typename _InputIter1, typename _InputIter2> int | lexicographical_compare_3way (_InputIter1 __first1, _InputIter1 __last1, _InputIter2 __first2, _InputIter2 __last2)
| `memcmp` on steroids.
template<typename _ForwardIter, typename _OutputIter, typename _Distance> _OutputIter | random_sample_n (_ForwardIter __first, _ForwardIter __last, _OutputIter __out, const _Distance __n)
template<typename _ForwardIter, typename _OutputIter, typename _Distance, typename _RandomNumberGenerator> _OutputIter | random_sample_n (_ForwardIter __first, _ForwardIter __last, _OutputIter __out, const _Distance __n, _RandomNumberGenerator &__rand)
template<typename _InputIter, typename _RandomAccessIter> _RandomAccessIter | random_sample (_InputIter __first, _InputIter __last, _RandomAccessIter __out_first, _RandomAccessIter __out_last)
template<typename _InputIter, typename _RandomAccessIter, typename _RandomNumberGenerator> _RandomAccessIter | random_sample (_InputIter __first, _InputIter __last, _RandomAccessIter __out_first, _RandomAccessIter __out_last, _RandomNumberGenerator &__rand)
template<typename _RandomAccessIter> bool | is_heap (_RandomAccessIter __first, _RandomAccessIter __last)
template<typename _RandomAccessIter, typename _StrictWeakOrdering> bool | is_heap (_RandomAccessIter __first, _RandomAccessIter __last, _StrictWeakOrdering __comp)
template<typename _ForwardIter> bool | is_sorted (_ForwardIter __first, _ForwardIter __last)
template<typename _ForwardIter, typename _StrictWeakOrdering> bool | is_sorted (_ForwardIter __first, _ForwardIter __last, _StrictWeakOrdering __comp)
template<class _Tp> _Tp | identity_element (std::plus< _Tp >)
| An SGI extension .
template<class _Tp> _Tp | identity_element (std::multiplies< _Tp >)
| An SGI extension .
template<class _Operation1, class _Operation2> unary_compose< _Operation1, _Operation2 > | compose1 (const _Operation1 &__fn1, const _Operation2 &__fn2)
| An SGI extension .
template<class _Operation1, class _Operation2, class _Operation3> binary_compose< _Operation1, _Operation2, _Operation3 > | compose2 (const _Operation1 &__fn1, const _Operation2 &__fn2, const _Operation3 &__fn3)
| An SGI extension .
template<class _Result> constant_void_fun< _Result > | constant0 (const _Result &__val)
| An SGI extension .
template<class _Result> constant_unary_fun< _Result, _Result > | constant1 (const _Result &__val)
| An SGI extension .
template<class _Result> constant_binary_fun< _Result, _Result, _Result > | constant2 (const _Result &__val)
| An SGI extension .
template<typename _InputIterator, typename _Distance> void | distance (_InputIterator __first, _InputIterator __last, _Distance &__n)
template<typename _InputIter, typename _Size, typename _ForwardIter> pair< _InputIter, _ForwardIter > | uninitialized_copy_n (_InputIter __first, _Size __count, _ForwardIter __result)
| Copies the range [first,last) into result.
template<typename _Tp, typename _Integer, typename _MonoidOperation> _Tp | power (_Tp __x, _Integer __n, _MonoidOperation __monoid_op)
template<typename _Tp, typename _Integer> _Tp | power (_Tp __x, _Integer __n)
template<typename _ForwardIter, typename _Tp> void | iota (_ForwardIter __first, _ForwardIter __last, _Tp __value)

## Detailed Description

This namespace serves two purposes.

This namespace is used for two things:

- sequestering internal (implementation-only) names away from the global namespace; these are details of the implementation and should not be touched by users
- GNU extensions for public use

This is still fluid and changing rapidly. Currently the rule is: if an entitity is found in the user-level documentation, it falls into the second category.

## Function Documentation

void __gnu_cxx::__verbose_terminate_handler | ( |  | ) |

A replacement for the standard terminate_handler which prints more information about the terminating exception (if any) on stderr. Call

            std::set_terminate (__gnu_cxx::__verbose_terminate_handler)

to use. For more info, see http://gcc.gnu.org/onlinedocs/libstdc++/19_diagnostics/howto.html#4

Definition at line 44 of file vterminate.cc.

References abi::__cxa_demangle().