Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::bimaps::tags::support Namespace Reference

Metafunctions to work with tagged types. More...

Classes

struct  apply_to_value_type
 Higger order metafunction similar to mpl::apply but for tagged types. More...
 
struct  apply_to_value_type< F, tagged< ValueType, Tag > >
 
struct  default_tagged
 Weak tagging metafunction. More...
 
struct  default_tagged< tagged< Type, OldTag >, NewTag >
 
struct  is_tagged
 Type trait to check if a type is tagged. More...
 
struct  is_tagged< tagged< Type, Tag > >
 
struct  overwrite_tagged
 Hard tagging metafunction. More...
 
struct  overwrite_tagged< tagged< Type, OldTag >, NewTag >
 
struct  tag_of
 Metafunction to obtain the tag of a type. More...
 
struct  tag_of< tagged< Type, Tag > >
 
struct  value_type_of
 Metafunction to work with tagged and untagged type uniformly. More...
 
struct  value_type_of< tagged< Type, Tag > >
 

Detailed Description

Metafunctions to work with tagged types.

This metafunctions aims to make easier the manage of tagged types. They are all mpl compatible metafunctions and can be used with lambda expresions. The metafunction value_type_of and tag_of get the data in a tagged type in a secure and consistent way. default_tagged and overwrite_tagged allows to work with the tag of a tagged type, and apply_to_value_type is a higher order metafunction that allow the user to change the type of a TaggedType.