# std::tr1 Namespace Reference

## Classes

- struct aligned_storage
    other transformations [4.8]. More...
- struct array
    NB: Requires complete type _Tp. More...
- class bad_function_call
    Exception class thrown when class template function's operator() is called with an empty target. More...
- struct integral_constant
    helper classes [4.3]. More...
- struct is_arithmetic
    composite type traits [4.5.2]. More...
- struct is_bind_expression
    Determines if the given type _Tp is a function object should be treated as a subexpression when evaluating calls to function objects returned by bind(). [TR1 3.6.1]. More...
- struct is_const
    type properties [4.5.3]. More...
- struct is_placeholder
    Determines if the given type _Tp is a placeholder in a bind() expression and, if so, which placeholder it is. [TR1 3.6.2]. More...
- struct is_same
    relationships between types [4.6]. More...
- struct is_void
    primary type categories [4.5.1]. More...
- struct remove_const
    const-volatile modifications [4.7.1]. More...
- struct remove_extent
    array modififications [4.7.3]. More...
- struct remove_reference
    reference modifications [4.7.2]. More...
- class shared_ptr

## Typedefs

- typedef integral_constant<
  bool, false > false_type
- typedef integral_constant<
  bool, true > true_type

## Enumerations

- enum _Manager_operation { __get_type_info, __get_functor_ptr, __clone_functor, __destroy_functor }

## Functions

- template<typename _Member, typename _Class> _Mem_fn< _Member _Class::* > __callable_functor (_Member _Class::*const &__p)
- template<typename _Member, typename _Class> _Mem_fn< _Member _Class::* > __callable_functor (_Member _Class::*&__p)
- template<typename _Functor> _Functor & __callable_functor (_Functor &__f)
- void __enable_shared_from_this (const shared_count &,...)
- template<typename _Tp1, typename _Tp2> void __enable_shared_from_this (const shared_count &__pn, const enable_shared_from_this< _Tp1 > *__pe, const _Tp2 *__px)
- void __throw_bad_weak_ptr ()
- _DEFINE_SPEC (2, is_member_function_pointer, _Tp _Cp::*, is_function< _Tp >::value) template< typename _Tp > struct is_enum
- _DEFINE_SPEC (2, is_member_object_pointer, _Tp _Cp::*,!is_function< _Tp >::value) template< typename > struct is_member_function_pointer
- template<typename _Tp, typename _Tp1> shared_ptr< _Tp > const_pointer_cast (const shared_ptr< _Tp1 > &__r)
- template<typename _Tp> reference_wrapper< const _Tp > cref (reference_wrapper< _Tp > __t)
- template<typename _Tp> reference_wrapper< const _Tp > cref (const _Tp &__t)
- template<typename _Tp, typename _Tp1> shared_ptr< _Tp > dynamic_pointer_cast (const shared_ptr< _Tp1 > &__r)
- template<int _Int, class _Tp1, class _Tp2> const tuple_element< _Int,
  std::pair< _Tp1, _Tp2
  > >::type & get (const pair< _Tp1, _Tp2 > &__in)
- template<int _Int, class _Tp1, class _Tp2> tuple_element< _Int, std::pair<
  _Tp1, _Tp2 > >::type & get (pair< _Tp1, _Tp2 > &__in)
- template<int __i, typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3, typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7, typename _Tp8, typename _Tp9> __add_c_ref< typename tuple_element<
  __i, tuple< _Tp0, _Tp1, _Tp2,
  _Tp3, _Tp4, _Tp5, _Tp6, _Tp7,
  _Tp8, _Tp9 > >::type >::type get (const tuple< _Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, _Tp9 > &__t)
- template<int __i, typename _Tp0, typename _Tp1, typename _Tp2, typename _Tp3, typename _Tp4, typename _Tp5, typename _Tp6, typename _Tp7, typename _Tp8, typename _Tp9> __add_ref< typename tuple_element<
  __i, tuple< _Tp0, _Tp1, _Tp2,
  _Tp3, _Tp4, _Tp5, _Tp6, _Tp7,
  _Tp8, _Tp9 > >::type >::type get (tuple< _Tp0, _Tp1, _Tp2, _Tp3, _Tp4, _Tp5, _Tp6, _Tp7, _Tp8, _Tp9 > &__t)
- template<typename _Tp, typename _Class> _Mem_fn< _Tp _Class::* > mem_fn (_Tp _Class::*__pm)
- template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9, typename _T10, typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9, typename _U10> bool operator!= (const tuple< _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10 > &__t, const tuple< _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10 > &__u)
- template<typename _Signature> bool operator!= (_M_clear_type *, const function< _Signature > &__f)
- template<typename _Signature> bool operator!= (const function< _Signature > &__f, _M_clear_type *)
- template<typename _Tp, size_t _Nm> bool operator!= (const array< _Tp, _Nm > &__one, const array< _Tp, _Nm > &__two)
- template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9, typename _T10, typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9, typename _U10> bool operator< (const tuple< _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10 > &__t, const tuple< _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10 > &__u)
- template<typename _Tp, size_t _Nm> bool operator< (const array< _Tp, _Nm > &a, const array< _Tp, _Nm > &b)
- template<typename _Ch, typename _Tr, typename _Tp> std::basic_ostream< _Ch, _Tr > & operator<< (std::basic_ostream< _Ch, _Tr > &__os, const shared_ptr< _Tp > &__p)
- template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9, typename _T10, typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9, typename _U10> bool operator<= (const tuple< _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10 > &__t, const tuple< _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10 > &__u)
- template<typename _Tp, size_t _Nm> bool operator<= (const array< _Tp, _Nm > &__one, const array< _Tp, _Nm > &__two)
- template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9, typename _T10, typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9, typename _U10> bool operator== (const tuple< _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10 > &__t, const tuple< _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10 > &__u)
- template<typename _Signature> bool operator== (_M_clear_type *, const function< _Signature > &__f)
- template<typename _Signature> bool operator== (const function< _Signature > &__f, _M_clear_type *)
- template<typename _Tp, size_t _Nm> bool operator== (const array< _Tp, _Nm > &__one, const array< _Tp, _Nm > &__two)
- template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9, typename _T10, typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9, typename _U10> bool operator> (const tuple< _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10 > &__t, const tuple< _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10 > &__u)
- template<typename _Tp, size_t _Nm> bool operator> (const array< _Tp, _Nm > &__one, const array< _Tp, _Nm > &__two)
- template<typename _T1, typename _T2, typename _T3, typename _T4, typename _T5, typename _T6, typename _T7, typename _T8, typename _T9, typename _T10, typename _U1, typename _U2, typename _U3, typename _U4, typename _U5, typename _U6, typename _U7, typename _U8, typename _U9, typename _U10> bool operator>= (const tuple< _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10 > &__t, const tuple< _U1, _U2, _U3, _U4, _U5, _U6, _U7, _U8, _U9, _U10 > &__u)
- template<typename _Tp, size_t _Nm> bool operator>= (const array< _Tp, _Nm > &__one, const array< _Tp, _Nm > &__two)
- template<typename _Tp> reference_wrapper< _Tp > ref (reference_wrapper< _Tp > __t)
- template<typename _Tp> reference_wrapper< _Tp > ref (_Tp &__t)
- template<typename _Tp, typename _Tp1> shared_ptr< _Tp > static_pointer_cast (const shared_ptr< _Tp1 > &__r)
- template<class Value, class Hash, class Pred, class Alloc, bool cache_hash_code> void swap (unordered_multiset< Value, Hash, Pred, Alloc, cache_hash_code > &x, unordered_multiset< Value, Hash, Pred, Alloc, cache_hash_code > &y)
- template<class Value, class Hash, class Pred, class Alloc, bool cache_hash_code> void swap (unordered_set< Value, Hash, Pred, Alloc, cache_hash_code > &x, unordered_set< Value, Hash, Pred, Alloc, cache_hash_code > &y)
- template<class Key, class T, class Hash, class Pred, class Alloc, bool cache_hash_code> void swap (unordered_multimap< Key, T, Hash, Pred, Alloc, cache_hash_code > &x, unordered_multimap< Key, T, Hash, Pred, Alloc, cache_hash_code > &y)
- template<class Key, class T, class Hash, class Pred, class Alloc, bool cache_hash_code> void swap (unordered_map< Key, T, Hash, Pred, Alloc, cache_hash_code > &x, unordered_map< Key, T, Hash, Pred, Alloc, cache_hash_code > &y)
- template<typename _Signature> void swap (function< _Signature > &__x, function< _Signature > &__y)
- template<typename _Tp, size_t _Nm> void swap (array< _Tp, _Nm > &__one, array< _Tp, _Nm > &__two)
- tr1_hashtable_define_trivial_hash (double)
- tr1_hashtable_define_trivial_hash (float)
- tr1_hashtable_define_trivial_hash (long)
- tr1_hashtable_define_trivial_hash (int)
- tr1_hashtable_define_trivial_hash (short)
- tr1_hashtable_define_trivial_hash (wchar_t)
- tr1_hashtable_define_trivial_hash (unsigned char)
- tr1_hashtable_define_trivial_hash (signed char)
- tr1_hashtable_define_trivial_hash (char)
- tr1_hashtable_define_trivial_hash (bool)

## Variables

- swallow_assign ignore

## Function Documentation

shared_ptr<_Tp> std::tr1::const_pointer_cast | ( | const shared_ptr< _Tp1 > & | __r | ) |

Warning:
  The seemingly equivalent `shared_ptr<T>(const_cast<T*>(r.get()))` will eventually result in undefined behaviour, attempting to delete the same object twice.

Definition at line 731 of file boost_shared_ptr.h.

References const_pointer_cast().

Referenced by const_pointer_cast().

shared_ptr<_Tp> std::tr1::dynamic_pointer_cast | ( | const shared_ptr< _Tp1 > & | __r | ) |

Warning:
  The seemingly equivalent `shared_ptr<T>(dynamic_cast<T*>(r.get()))` will eventually result in undefined behaviour, attempting to delete the same object twice.

Definition at line 743 of file boost_shared_ptr.h.

References dynamic_pointer_cast().

Referenced by dynamic_pointer_cast().

_Mem_fn<_Tp _Class::*> std::tr1::mem_fn | ( | _Tp _Class::* | __pm | ) | `[inline]`

| Returns a function object that forwards to the member pointer pm. Definition at line 500 of file tr1/functional.

bool std::tr1::operator!= | ( | _M_clear_type * | ,
|  | const function< _Signature > & | __f
| ) | `[inline]`

| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Definition at line 1062 of file tr1/functional.

bool std::tr1::operator!= | ( | const function< _Signature > & | __f,
|  | _M_clear_type * |
| ) | `[inline]`

Compares a polymorphic function object wrapper against 0 (the NULL pointer).

Returns:
  `false` if the wrapper has no target, `true` otherwise

This function will not throw an exception.

Definition at line 1052 of file tr1/functional.

bool std::tr1::operator== | ( | _M_clear_type * | ,
|  | const function< _Signature > & | __f
| ) | `[inline]`

| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Definition at line 1038 of file tr1/functional.

bool std::tr1::operator== | ( | const function< _Signature > & | __f,
|  | _M_clear_type * |
| ) | `[inline]`

Compares a polymorphic function object wrapper against 0 (the NULL pointer).

Returns:
  `true` if the wrapper has no target, `false` otherwise

This function will not throw an exception.

Definition at line 1028 of file tr1/functional.

shared_ptr<_Tp> std::tr1::static_pointer_cast | ( | const shared_ptr< _Tp1 > & | __r | ) |

Warning:
  The seemingly equivalent `shared_ptr<T>(static_cast<T*>(r.get()))` will eventually result in undefined behaviour, attempting to delete the same object twice.

Definition at line 719 of file boost_shared_ptr.h.

References static_pointer_cast().

Referenced by static_pointer_cast().

void std::tr1::swap | ( | function< _Signature > & | __x,
|  | function< _Signature > & | __y
| ) | `[inline]`

| Swap the targets of two polymorphic function object wrappers. This function will not throw an exception. Definition at line 1076 of file tr1/functional. References std::swap().