|
typedef
::boost::bimaps::relation::detail::relation_storage
< TA, TB, force_mutable > | storage_base |
|
typedef mutant_relation< TA,
TB, Info, false > | above_view |
| Above view, non mutable view of the relation. More...
|
|
typedef ::boost::mpl::vector4
< left_pair, right_pair,
mutant_relation< TA, TB, Info,
true >, mutant_relation< TA,
TB, Info, false > > | mutant_views |
|
typedef BOOST_DEDUCED_TYPENAME
tagged_info_type::value_type | info_type |
|
typedef BOOST_DEDUCED_TYPENAME
tagged_info_type::tag | info_tag |
|
typedef relation_storage< TA,
TB, false > | non_mutable_storage |
|
typedef BOOST_DEDUCED_TYPENAME
tags::support::default_tagged
< TA, member_at::left >::type | tagged_left_type |
|
typedef BOOST_DEDUCED_TYPENAME
tags::support::default_tagged
< TB, member_at::right >::type | tagged_right_type |
|
|
typedef structured_pair< TA,
TB, Info, normal_layout > | left_pair |
| A signature compatible std::pair that is a view of the relation. More...
|
|
typedef structured_pair< TB,
TA, Info, mirror_layout > | right_pair |
| A signature compatible std::pair that is a view of the relation. More...
|
|
|
typedef
BOOST_DEDUCED_TYPENAME::boost::mpl::if_c
< force_mutable,
BOOST_DEDUCED_TYPENAME::boost::remove_const
< BOOST_DEDUCED_TYPENAME
tagged_left_type::value_type >
::type, BOOST_DEDUCED_TYPENAME
tagged_left_type::value_type >
::type | left_value_type |
| The type stored in the relation. More...
|
|
typedef
BOOST_DEDUCED_TYPENAME::boost::mpl::if_c
< force_mutable,
BOOST_DEDUCED_TYPENAME::boost::remove_const
< BOOST_DEDUCED_TYPENAME
tagged_right_type::value_type >
::type, BOOST_DEDUCED_TYPENAME
tagged_right_type::value_type >
::type | right_value_type |
| The type stored in the relation. More...
|
|
|
typedef BOOST_DEDUCED_TYPENAME
tagged_left_type::tag | left_tag |
| The tag of the member. By default it is member_at: :{side}. More...
|
|
typedef BOOST_DEDUCED_TYPENAME
tagged_right_type::tag | right_tag |
| The tag of the member. By default it is member_at: :{side}. More...
|
|
|
| mutant_relation () |
|
| mutant_relation (BOOST_DEDUCED_TYPENAME::boost::call_traits< BOOST_DEDUCED_TYPENAME base_::left_value_type >::param_type l, BOOST_DEDUCED_TYPENAME::boost::call_traits< BOOST_DEDUCED_TYPENAME base_::right_value_type >::param_type r) |
|
| mutant_relation (BOOST_DEDUCED_TYPENAME::boost::call_traits< BOOST_DEDUCED_TYPENAME base_::left_value_type >::param_type l, BOOST_DEDUCED_TYPENAME::boost::call_traits< BOOST_DEDUCED_TYPENAME base_::right_value_type >::param_type r, BOOST_DEDUCED_TYPENAME::boost::call_traits< BOOST_DEDUCED_TYPENAME base_::info_type >::param_type i) |
|
| mutant_relation (const mutant_relation< TA, TB, Info, false > &rel) |
|
| mutant_relation (const mutant_relation< TA, TB, Info, true > &rel) |
|
template<bool FM> |
mutant_relation & | operator= (const mutant_relation< TA, TB, Info, FM > &rel) |
|
left_pair & | get_left_pair () |
|
const left_pair & | get_left_pair () const |
|
right_pair & | get_right_pair () |
|
const right_pair & | get_right_pair () const |
|
above_view & | get_view () |
|
const above_view & | get_view () const |
|
template<class Tag > |
const
BOOST_DEDUCED_TYPENAME::boost::bimaps::relation::support::result_of::get
< Tag, const mutant_relation >
::type | get (BOOST_EXPLICIT_TEMPLATE_TYPE(Tag)) const |
|
template<class Tag > |
BOOST_DEDUCED_TYPENAME::boost::bimaps::relation::support::result_of::get
< Tag, mutant_relation >::type | get (BOOST_EXPLICIT_TEMPLATE_TYPE(Tag)) |
|
BOOST_DEDUCED_TYPENAME
base_::left_value_type & | get_left () |
|
const BOOST_DEDUCED_TYPENAME
base_::left_value_type & | get_left () const |
|
BOOST_DEDUCED_TYPENAME
base_::right_value_type & | get_right () |
|
const BOOST_DEDUCED_TYPENAME
base_::right_value_type & | get_right () const |
|
template<class TA, class TB, class Info = ::boost::mpl::na, bool force_mutable = false>
singleton boost::bimaps::relation::mutant_relation< TA, TB, Info, force_mutable >
Abstraction of a related pair of values, that extends the std::pair class.
The mutant_relation is a mutant class. A mutant class can mutate with zero overhead in other classes that are called views. Each view has to be StorageCompatible with the base class of the mutant. Note that all the views have the following storage structure:
__________
| |
| TA |
|__________|
| |
| TB |
|__________|
See also select_relation, standard_relation.