42 #ifndef PB_DS_TYPE_UTILS_HPP 
   43 #define PB_DS_TYPE_UTILS_HPP 
   47 #include <tr1/type_traits> 
   55     using std::tr1::is_same;
 
   56     using std::tr1::is_const;
 
   57     using std::tr1::is_pointer;
 
   58     using std::tr1::is_reference;
 
   59     using std::tr1::is_fundamental;
 
   60     using std::tr1::is_member_object_pointer;
 
   61     using std::tr1::is_member_pointer;
 
   62     using std::tr1::is_base_of;
 
   63     using std::tr1::remove_const;
 
   64     using std::tr1::remove_reference;
 
   69     using std::tr1::integral_constant;
 
   70     typedef std::tr1::integral_constant<int, 1> true_type;
 
   71     typedef std::tr1::integral_constant<int, 0> false_type;
 
   73     using __gnu_cxx::__conditional_type;
 
   74     using __gnu_cxx::__numeric_traits;
 
   77     struct is_const_pointer
 
   81       value = is_const<T>::value && is_pointer<T>::value
 
   86     struct is_const_reference
 
   90       value = is_const<T>::value && is_reference<T>::value
 
   99       value = is_fundamental<typename remove_const<T>::type>::value 
 
  100       || is_pointer<typename remove_const<T>::type>::value 
 
  101       || is_member_pointer<T>::value 
 
  118       template<
typename U, 
typename V>
 
  119       struct is_pair_imp<
std::pair<U,V> >
 
  130       value = is_pair_imp<T>::value
 
  135 #if __cplusplus >= 201103L 
  136 #define PB_DS_STATIC_ASSERT(UNIQUE, E)  static_assert(E, #UNIQUE) 
  139     struct __static_assert;
 
  142     struct __static_assert<true>
 
  146     struct __static_assert_dumclass
 
  154 #define PB_DS_STATIC_ASSERT(UNIQUE, E)  \ 
  155     typedef __gnu_pbds::detail::__static_assert_dumclass<sizeof(__gnu_pbds::detail::__static_assert<bool(E)>)> UNIQUE##__static_assert_type 
  159     template<
typename Type>
 
GNU extensions for policy-based data structures for public use. 
ISO C++ entities toplevel namespace is std.