Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::bimaps::relation::support::member_with_tag< Tag, Relation, Enable > Struct Template Reference

Metafunction to convert user tags to the member_at idiom. More...

#include <member_with_tag.hpp>

Public Member Functions

 BOOST_BIMAP_STATIC_ERROR (MEMBER_WITH_TAG_FAILURE,(Relation, Tag))
 

Detailed Description

template<class Tag, class Relation, class Enable = void>
struct boost::bimaps::relation::support::member_with_tag< Tag, Relation, Enable >

Metafunction to convert user tags to the member_at idiom.

template< class Tag, class Relation >
struct member_with_tag
{
typedef member_at::{side} type;
};

We have to allow that all the metafunctions that works with tags and retrieves data from a Relation will work with member_at idiom even if the type was tagged. This will be great for the user, because he can choose to tag a member after he is using the relation and the code will still work.

If we perform this check in every metafunction it will be very tedious and error prone, so instead of that all metafunctions that works with relations first call this metafunction that convert the tag to a member_at tag.

See also member_at, is_tag_of_member_at_left, is_tag_of_member_at_right.

Member Function Documentation

template<class Tag , class Relation , class Enable = void>
boost::bimaps::relation::support::member_with_tag< Tag, Relation, Enable >::BOOST_BIMAP_STATIC_ERROR ( MEMBER_WITH_TAG_FAILURE  ,
(Relation, Tag)   
)

The documentation for this struct was generated from the following file: