Boost C++ Libraries Boost.Bimap Home Libraries People FAQ More

PrevUpHomeNext

mutant_relation Class Template Reference
[relation]

Abstraction of a related pair of values, that extends the std::pair class. More...

#include <mutant_relation.hpp>

List of all members.

Public Types

typedef mutant_relation< TA,
TB > 
above_view
typedef mutant_relation< TA,
TB > & 
above_view_reference
typedef const mutant_relation<
TA, TB > 
const_above_view
typedef const mutant_relation<
TA, TB > & 
const_above_view_reference
typedef ::boost::mpl::vector4<
structured_pair< TA, TB,
normal_layout >, structured_pair<
TB, TA, mirror_layout >,
mutant_relation< TA, TB,
true >, above_view
mutant_views
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 const left_pairconst_left_pair_reference
typedef const right_pairconst_right_pair_reference
typedef structured_pair< TA,
TB, normal_layout
left_pair
 A signature compatible std::pair that is a view of the relation.
typedef left_pairleft_pair_reference
typedef structured_pair< TB,
TA, mirror_layout
right_pair
typedef right_pairright_pair_reference
typedef BOOST_DEDUCED_TYPENAME
tagged_left_type::tag 
left_tag
 The tag of the member. By default it is member_at::{side}.
typedef BOOST_DEDUCED_TYPENAME
tagged_right_type::tag 
right_tag
 The tag of the member. By default it is member_at::{side}.
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.
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.

Public Member Functions

template<class Tag>
BOOST_DEDUCED_TYPENAME::boost::bimaps::relation::support::result_of::get<
Tag, mutant_relation >::type 
get (BOOST_EXPLICIT_TEMPLATE_TYPE(Tag))
template<class Tag>
const BOOST_DEDUCED_TYPENAME::boost::bimaps::relation::support::result_of::get<
Tag, mutant_relation >::type 
get (BOOST_EXPLICIT_TEMPLATE_TYPE(Tag)) const
const left_value_typeget_left () const
left_value_typeget_left ()
const_left_pair_reference get_left_pair () const
left_pair_reference get_left_pair ()
const right_value_typeget_right () const
right_value_typeget_right ()
const_right_pair_reference get_right_pair () const
right_pair_reference get_right_pair ()
const_above_view_reference get_view () const
above_view_reference get_view ()
 mutant_relation (const mutant_relation< TA, TB, true > &rel)
 mutant_relation (const mutant_relation< TA, TB, false > &rel)
 mutant_relation (BOOST_DEDUCED_TYPENAME::boost::call_traits< left_value_type >::param_type l, BOOST_DEDUCED_TYPENAME::boost::call_traits< right_value_type >::param_type r)
 mutant_relation ()
template<bool FM>
mutant_relationoperator= (const mutant_relation< TA, TB, FM > &rel)

Public Attributes

left_value_type left
 data, exposed for easy manipulation
right_value_type right
 data, exposed for easy manipulation

Friends

class ::boost::serialization::access


Detailed Description

template<class TA, class TB, bool force_mutable = false>
class boost::bimaps::relation::mutant_relation< TA, TB, 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.

Definition at line 70 of file mutant_relation.hpp.


The documentation for this class was generated from the following file:
Copyright 2006 Matias Capeletto

PrevUpHomeNext