Reference Boost , The Boost C++ Libraries BoostBook Documentation Subset , Chapter 37. Boost.TypeErasure    
  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  T,  typename  Concept,  typename  Tag>  
      T  any_cast ( any <  Concept ,  Tag  >  & ) ; 
    template < typename  T,  typename  Concept,  typename  Tag>  
      T  any_cast ( const  any <  Concept ,  Tag  >  & ) ; 
    template < typename  T,  typename  Concept,  typename  Tag>  
      T  any_cast ( any <  Concept ,  Tag  >  * ) ; 
    template < typename  T,  typename  Concept,  typename  Tag>  
      T  any_cast ( const  any <  Concept ,  Tag  >  * ) ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  P>  class  dynamic_binding ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Concept,  typename  T>  
      const  binding <  Concept  >  &  binding_of ( const  any <  Concept ,  T  >  & ) ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Concept,  typename  Op,  class ...  U>  
      unspecified call ( const  binding <  Concept  >  & ,  const  Op  & ,  U  && ... ) ; 
    template < typename  Op,  class ...  U>  unspecified call ( const  Op  & ,  U  && ... ) ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Sig,  typename  F =  _self >  struct  callable ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Concept,  typename  Op,  class ...  U>  
      bool  check_match ( const  binding <  Concept  >  & ,  const  Op  & ,  U  && ... ) ; 
    template < typename  Op,  class ...  U>  bool  check_match ( const  Op  & ,  U  && ... ) ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Concept,  typename  Base,  typename  ID,  
             typename  Enable =  void >  
      struct  concept_interface ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  T>  struct  concept_of ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Sig>  struct  constructible ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Metafunction>  struct  deduced ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  T>  struct  derived ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  T>  bool  is_empty ( const  T  & ) ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  T>  struct  is_placeholder ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Sub,  typename  Super,  typename  PlaceholderMap =  void >  
      struct  is_subconcept ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Traversal,  typename  T =  _self ,  
             typename  Reference =  :: boost :: use_default ,  
             typename  DifferenceType =  :: std :: ptrdiff_t ,  
             typename  ValueType =  typename  deduced < iterator_value_type< T >  > :: type >  
      struct  iterator ; 
    template < typename  T =  _self ,  typename  Reference =  boost :: use_default ,  
             typename  DifferenceType =  std :: ptrdiff_t >  
      struct  forward_iterator ; 
    template < typename  T =  _self ,  typename  Reference =  boost :: use_default ,  
             typename  DifferenceType =  std :: ptrdiff_t >  
      struct  bidirectional_iterator ; 
    template < typename  T =  _self ,  typename  Reference =  boost :: use_default ,  
             typename  DifferenceType =  std :: ptrdiff_t >  
      struct  random_access_iterator ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  T =  _self >  struct  incrementable ; 
    template < typename  T =  _self >  struct  decrementable ; 
    template < typename  T =  _self ,  typename  R =  T >  struct  complementable ; 
    template < typename  T =  _self ,  typename  R =  T >  struct  negatable ; 
    template < typename  R,  typename  T =  _self >  struct  dereferenceable ; 
    template < typename  T =  _self ,  typename  U =  T ,  typename  R =  T >  struct  addable ; 
    template < typename  T =  _self ,  typename  U =  T ,  typename  R =  T >  
      struct  subtractable ; 
    template < typename  T =  _self ,  typename  U =  T ,  typename  R =  T >  
      struct  multipliable ; 
    template < typename  T =  _self ,  typename  U =  T ,  typename  R =  T >  
      struct  dividable ; 
    template < typename  T =  _self ,  typename  U =  T ,  typename  R =  T >  struct  modable ; 
    template < typename  T =  _self ,  typename  U =  T ,  typename  R =  T >  
      struct  left_shiftable ; 
    template < typename  T =  _self ,  typename  U =  T ,  typename  R =  T >  
      struct  right_shiftable ; 
    template < typename  T =  _self ,  typename  U =  T ,  typename  R =  T >  
      struct  bitandable ; 
    template < typename  T =  _self ,  typename  U =  T ,  typename  R =  T >  
      struct  bitorable ; 
    template < typename  T =  _self ,  typename  U =  T ,  typename  R =  T >  
      struct  bitxorable ; 
    template < typename  T =  _self ,  typename  U =  T >  struct  add_assignable ; 
    template < typename  T =  _self ,  typename  U =  T >  struct  subtract_assignable ; 
    template < typename  T =  _self ,  typename  U =  T >  struct  multiply_assignable ; 
    template < typename  T =  _self ,  typename  U =  T >  struct  divide_assignable ; 
    template < typename  T =  _self ,  typename  U =  T >  struct  mod_assignable ; 
    template < typename  T =  _self ,  typename  U =  T >  struct  left_shift_assignable ; 
    template < typename  T =  _self ,  typename  U =  T >  struct  right_shift_assignable ; 
    template < typename  T =  _self ,  typename  U =  T >  struct  bitand_assignable ; 
    template < typename  T =  _self ,  typename  U =  T >  struct  bitor_assignable ; 
    template < typename  T =  _self ,  typename  U =  T >  struct  bitxor_assignable ; 
    template < typename  T =  _self ,  typename  U =  T >  struct  equality_comparable ; 
    template < typename  T =  _self ,  typename  U =  T >  struct  less_than_comparable ; 
    template < typename  R,  typename  T =  _self ,  typename  N =  std :: ptrdiff_t >  
      struct  subscriptable ; 
    template < typename  Os =  std :: ostream ,  typename  T =  _self >  struct  ostreamable ; 
    template < typename  Is =  std :: istream ,  typename  T =  _self >  struct  istreamable ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Concept>  class  binding ; 
    template < typename  Any,  typename  T>  struct  as_param ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    struct  placeholder ; 
    struct  _a ; 
    struct  _b ; 
    struct  _c ; 
    struct  _d ; 
    struct  _e ; 
    struct  _f ; 
    struct  _g ; 
    struct  _self ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Concept,  typename  T>  class  any ; 
    template < typename  Concept,  typename  T>  class  param ; 
    template < typename  T>  struct  placeholder_of ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Any,  typename  T>  struct  rebind_any ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  T>  struct  is_relaxed ; 
    struct  relaxed ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Concept,  typename  Op,  class ...  U>  
      void  require_match ( const  binding <  Concept  >  & ,  const  Op  & ,  U  && ... ) ; 
    template < typename  Op,  class ...  U>  void  require_match ( const  Op  & ,  U  && ... ) ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  T,  typename  U>  struct  same_type ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Concept,  class ...  T>  class  tuple ; 
    template < int  N,  typename  Concept,  class ...  T>  
      any <  Concept ,  TN  >  &  get ( tuple <  Concept ,  T ... >  & ) ; 
    template < int  N,  typename  Concept,  class ...  T>  
      const  any <  Concept ,  TN  >  &  get ( const  tuple <  Concept ,  T ... >  & ) ; 
  } 
}  
namespace  boost  { 
  namespace  type_erasure  { 
    template < typename  Concept,  typename  T>  
      const  std :: type_info  &  typeid_of ( const  any <  Concept ,  T  >  & ) ; 
    template < typename  T,  typename  Concept>  
      const  std :: type_info  &  typeid_of ( const  binding <  Concept  >  & ) ; 
  } 
}  
 
Статья Reference  раздела The Boost C++ Libraries BoostBook Documentation Subset Chapter 37. Boost.TypeErasure  может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная  :: Chapter 37. Boost.TypeErasure  ::