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::structured_pair< FirstType, SecondType, Info, Layout > Class Template Reference

A std::pair signature compatible class that allows you to control the internal structure of the data. More...

#include <structured_pair.hpp>

Inheritance diagram for boost::bimaps::relation::structured_pair< FirstType, SecondType, Info, Layout >:
Collaboration diagram for boost::bimaps::relation::structured_pair< FirstType, SecondType, Info, Layout >:

Public Types

typedef ::boost::mpl::vector3
< structured_pair< FirstType,
SecondType, Info,
normal_layout >
, structured_pair< FirstType,
SecondType, Info,
mirror_layout >
, BOOST_DEDUCED_TYPENAME::boost::mpl::if_
< BOOST_DEDUCED_TYPENAME::boost::is_same
< Layout, normal_layout >
::type, mutant_relation
< FirstType, SecondType, Info,
true >, mutant_relation
< SecondType, FirstType, Info,
true > >::type
mutant_views
 
typedef BOOST_DEDUCED_TYPENAME
tagged_info_type::value_type 
info_type
 
typedef BOOST_DEDUCED_TYPENAME
tagged_info_type::tag 
info_tag
 
typedef normal_storage storage_
 
typedef BOOST_DEDUCED_TYPENAME
base_::left_value_type 
first_type
 
typedef BOOST_DEDUCED_TYPENAME
base_::right_value_type 
second_type
 
typedef BOOST_DEDUCED_TYPENAME
tags::support::default_tagged
< FirstType, member_at::left >
::type 
tagged_left_type
 
typedef BOOST_DEDUCED_TYPENAME
tags::support::default_tagged
< SecondType, member_at::right >
::type 
tagged_right_type
 
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...
 

Public Member Functions

 structured_pair ()
 
 structured_pair (BOOST_DEDUCED_TYPENAME boost::call_traits< BOOST_DEDUCED_TYPENAME base_::first_type >::param_type f, BOOST_DEDUCED_TYPENAME boost::call_traits< BOOST_DEDUCED_TYPENAME base_::second_type >::param_type s)
 
 structured_pair (BOOST_DEDUCED_TYPENAME boost::call_traits< BOOST_DEDUCED_TYPENAME base_::first_type >::param_type f, BOOST_DEDUCED_TYPENAME boost::call_traits< BOOST_DEDUCED_TYPENAME base_::second_type >::param_type s, BOOST_DEDUCED_TYPENAME boost::call_traits< BOOST_DEDUCED_TYPENAME base_::info_type >::param_type i)
 
template<class OtherLayout >
 structured_pair (const structured_pair< FirstType, SecondType, Info, OtherLayout > &p)
 
template<class OtherLayout >
structured_pairoperator= (const structured_pair< FirstType, SecondType, OtherLayout > &p)
 
template<class First , class Second >
 structured_pair (const std::pair< First, Second > &p)
 
template<class First , class Second >
structured_pairoperator= (const std::pair< First, Second > &p)
 
template<class Tag >
const
BOOST_DEDUCED_TYPENAME::boost::bimaps::relation::support::result_of::get
< Tag, const structured_pair >
::type 
get (BOOST_EXPLICIT_TEMPLATE_TYPE(Tag)) const
 
template<class Tag >
BOOST_DEDUCED_TYPENAME::boost::bimaps::relation::support::result_of::get
< Tag, structured_pair >::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
 

Public Attributes

info_type info
 
first_type first
 
second_type second
 

Protected Member Functions

void change_to (const Pair &p)
 
void clear_info ()
 

Detailed Description

template<class FirstType, class SecondType, class Info, class Layout = normal_layout>
class boost::bimaps::relation::structured_pair< FirstType, SecondType, Info, Layout >

A std::pair signature compatible class that allows you to control the internal structure of the data.

This class allows you to specify the order in wich the two data types will be in the layout of the class.

Member Typedef Documentation

template<class FirstType, class SecondType>
typedef BOOST_DEDUCED_TYPENAME base_::left_value_type boost::bimaps::relation::detail::normal_storage< FirstType, SecondType >::first_type
inherited
typedef BOOST_DEDUCED_TYPENAME tagged_info_type::tag boost::bimaps::relation::detail::pair_info_hook< FirstType , SecondType , Info, Layout >::info_tag
inherited
typedef BOOST_DEDUCED_TYPENAME tagged_info_type::value_type boost::bimaps::relation::detail::pair_info_hook< FirstType , SecondType , Info, Layout >::info_type
inherited
typedef BOOST_DEDUCED_TYPENAME tagged_left_type ::tag boost::bimaps::relation::symmetrical_base< FirstType , SecondType , force_mutable >::left_tag
inherited

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 boost::bimaps::relation::symmetrical_base< FirstType , SecondType , force_mutable >::left_value_type
inherited

The type stored in the relation.

template<class FirstType, class SecondType, class Info, class Layout = normal_layout>
typedef ::boost::mpl::vector3< structured_pair< FirstType, SecondType, Info, normal_layout >, structured_pair< FirstType, SecondType, Info, mirror_layout >, BOOST_DEDUCED_TYPENAME ::boost::mpl::if_< BOOST_DEDUCED_TYPENAME ::boost::is_same<Layout, normal_layout>::type, mutant_relation< FirstType, SecondType, Info, true >, mutant_relation< SecondType, FirstType, Info, true > >::type > boost::bimaps::relation::structured_pair< FirstType, SecondType, Info, Layout >::mutant_views
typedef BOOST_DEDUCED_TYPENAME tagged_right_type::tag boost::bimaps::relation::symmetrical_base< FirstType , SecondType , force_mutable >::right_tag
inherited

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_right_type::value_type >::type, BOOST_DEDUCED_TYPENAME tagged_right_type::value_type >::type boost::bimaps::relation::symmetrical_base< FirstType , SecondType , force_mutable >::right_value_type
inherited

The type stored in the relation.

template<class FirstType, class SecondType>
typedef BOOST_DEDUCED_TYPENAME base_::right_value_type boost::bimaps::relation::detail::normal_storage< FirstType, SecondType >::second_type
inherited
template<class FirstType, class SecondType>
typedef normal_storage boost::bimaps::relation::detail::normal_storage< FirstType, SecondType >::storage_
inherited

Constructor & Destructor Documentation

template<class FirstType, class SecondType, class Info, class Layout = normal_layout>
boost::bimaps::relation::structured_pair< FirstType, SecondType, Info, Layout >::structured_pair ( )
inline
template<class FirstType, class SecondType, class Info, class Layout = normal_layout>
boost::bimaps::relation::structured_pair< FirstType, SecondType, Info, Layout >::structured_pair ( BOOST_DEDUCED_TYPENAME boost::call_traits< BOOST_DEDUCED_TYPENAME base_::first_type >::param_type  f,
BOOST_DEDUCED_TYPENAME boost::call_traits< BOOST_DEDUCED_TYPENAME base_::second_type >::param_type  s 
)
inline
template<class FirstType, class SecondType, class Info, class Layout = normal_layout>
boost::bimaps::relation::structured_pair< FirstType, SecondType, Info, Layout >::structured_pair ( BOOST_DEDUCED_TYPENAME boost::call_traits< BOOST_DEDUCED_TYPENAME base_::first_type >::param_type  f,
BOOST_DEDUCED_TYPENAME boost::call_traits< BOOST_DEDUCED_TYPENAME base_::second_type >::param_type  s,
BOOST_DEDUCED_TYPENAME boost::call_traits< BOOST_DEDUCED_TYPENAME base_::info_type >::param_type  i 
)
inline
template<class FirstType, class SecondType, class Info, class Layout = normal_layout>
template<class OtherLayout >
boost::bimaps::relation::structured_pair< FirstType, SecondType, Info, Layout >::structured_pair ( const structured_pair< FirstType, SecondType, Info, OtherLayout > &  p)
inline
template<class FirstType, class SecondType, class Info, class Layout = normal_layout>
template<class First , class Second >
boost::bimaps::relation::structured_pair< FirstType, SecondType, Info, Layout >::structured_pair ( const std::pair< First, Second > &  p)
inline

Member Function Documentation

void boost::bimaps::relation::detail::pair_info_hook< FirstType , SecondType , Info, Layout >::change_to ( const Pair &  p)
inlineprotectedinherited
void boost::bimaps::relation::detail::pair_info_hook< FirstType , SecondType , Info, Layout >::clear_info ( )
inlineprotectedinherited
template<class FirstType, class SecondType, class Info, class Layout = normal_layout>
template<class Tag >
const BOOST_DEDUCED_TYPENAME ::boost::bimaps::relation::support:: result_of::get<Tag,const structured_pair>::type boost::bimaps::relation::structured_pair< FirstType, SecondType, Info, Layout >::get ( BOOST_EXPLICIT_TEMPLATE_TYPE(Tag)  ) const
inline
template<class FirstType, class SecondType, class Info, class Layout = normal_layout>
template<class Tag >
BOOST_DEDUCED_TYPENAME ::boost::bimaps::relation::support:: result_of::get<Tag,structured_pair>::type boost::bimaps::relation::structured_pair< FirstType, SecondType, Info, Layout >::get ( BOOST_EXPLICIT_TEMPLATE_TYPE(Tag)  )
inline
template<class FirstType, class SecondType>
BOOST_DEDUCED_TYPENAME base_:: left_value_type& boost::bimaps::relation::detail::normal_storage< FirstType, SecondType >::get_left ( )
inlineinherited
template<class FirstType, class SecondType>
const BOOST_DEDUCED_TYPENAME base_:: left_value_type& boost::bimaps::relation::detail::normal_storage< FirstType, SecondType >::get_left ( ) const
inlineinherited
template<class FirstType, class SecondType>
BOOST_DEDUCED_TYPENAME base_::right_value_type& boost::bimaps::relation::detail::normal_storage< FirstType, SecondType >::get_right ( )
inlineinherited
template<class FirstType, class SecondType>
const BOOST_DEDUCED_TYPENAME base_::right_value_type& boost::bimaps::relation::detail::normal_storage< FirstType, SecondType >::get_right ( ) const
inlineinherited
template<class FirstType, class SecondType, class Info, class Layout = normal_layout>
template<class OtherLayout >
structured_pair& boost::bimaps::relation::structured_pair< FirstType, SecondType, Info, Layout >::operator= ( const structured_pair< FirstType, SecondType, OtherLayout > &  p)
inline
template<class FirstType, class SecondType, class Info, class Layout = normal_layout>
template<class First , class Second >
structured_pair& boost::bimaps::relation::structured_pair< FirstType, SecondType, Info, Layout >::operator= ( const std::pair< First, Second > &  p)
inline

Member Data Documentation


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