diff options
Diffstat (limited to 'boost/bimap/relation')
17 files changed, 91 insertions, 3 deletions
diff --git a/boost/bimap/relation/detail/access_builder.hpp b/boost/bimap/relation/detail/access_builder.hpp index a1e939f827..a1e939f827 100644..100755 --- a/boost/bimap/relation/detail/access_builder.hpp +++ b/boost/bimap/relation/detail/access_builder.hpp diff --git a/boost/bimap/relation/detail/metadata_access_builder.hpp b/boost/bimap/relation/detail/metadata_access_builder.hpp index 4ef6cae938..4ef6cae938 100644..100755 --- a/boost/bimap/relation/detail/metadata_access_builder.hpp +++ b/boost/bimap/relation/detail/metadata_access_builder.hpp diff --git a/boost/bimap/relation/detail/static_access_builder.hpp b/boost/bimap/relation/detail/static_access_builder.hpp index 72f9925b0c..72f9925b0c 100644..100755 --- a/boost/bimap/relation/detail/static_access_builder.hpp +++ b/boost/bimap/relation/detail/static_access_builder.hpp diff --git a/boost/bimap/relation/detail/to_mutable_relation_functor.hpp b/boost/bimap/relation/detail/to_mutable_relation_functor.hpp index 1e8b521044..1e8b521044 100644..100755 --- a/boost/bimap/relation/detail/to_mutable_relation_functor.hpp +++ b/boost/bimap/relation/detail/to_mutable_relation_functor.hpp diff --git a/boost/bimap/relation/member_at.hpp b/boost/bimap/relation/member_at.hpp index c39738fc2f..c39738fc2f 100644..100755 --- a/boost/bimap/relation/member_at.hpp +++ b/boost/bimap/relation/member_at.hpp diff --git a/boost/bimap/relation/mutant_relation.hpp b/boost/bimap/relation/mutant_relation.hpp index 9aa28e4cac..60294a3b60 100644 --- a/boost/bimap/relation/mutant_relation.hpp +++ b/boost/bimap/relation/mutant_relation.hpp @@ -142,7 +142,7 @@ class relation_info_hook : public #ifndef BOOST_BIMAP_DISABLE_SERIALIZATION template< class Archive > - void serialize(Archive & ar, const unsigned int version) + void serialize(Archive & ar, const unsigned int) { ar & ::boost::serialization::make_nvp("left" , base_::left ); ar & ::boost::serialization::make_nvp("right", base_::right); @@ -188,7 +188,7 @@ class relation_info_hook<TA,TB,::boost::mpl::na,force_mutable> : #ifndef BOOST_BIMAP_DISABLE_SERIALIZATION template< class Archive > - void serialize(Archive & ar, const unsigned int version) + void serialize(Archive & ar, const unsigned int) { ar & ::boost::serialization::make_nvp("left" , base_::left ); ar & ::boost::serialization::make_nvp("right", base_::right); @@ -346,7 +346,7 @@ class mutant_relation : public { return ::boost::bimaps::relation::support::get<Tag>(*this); } - + #ifndef BOOST_BIMAP_DISABLE_SERIALIZATION private: @@ -422,6 +422,50 @@ bool operator>=(const detail::relation_storage<FirstType,SecondType,FM1> & a, (( a.left == b.left ) && ( a.right >= b.right ))); } +namespace detail { + +template< class TA, class TB, class Info, bool force_mutable> +mutant_relation<TA,TB,Info,force_mutable> + copy_with_left_replaced(mutant_relation<TA,TB,Info,force_mutable> const& rel, + BOOST_DEDUCED_TYPENAME ::boost::call_traits< BOOST_DEDUCED_TYPENAME + mutant_relation<TA,TB,Info,force_mutable>::left_value_type> + ::param_type l) +{ + return mutant_relation<TA,TB,Info,force_mutable>(l,rel.right,rel.info); +} + +template< class TA, class TB, bool force_mutable> +mutant_relation<TA,TB,::boost::mpl::na,force_mutable> + copy_with_left_replaced(mutant_relation<TA,TB,::boost::mpl::na,force_mutable> const& rel, + BOOST_DEDUCED_TYPENAME ::boost::call_traits< BOOST_DEDUCED_TYPENAME + mutant_relation<TA,TB,::boost::mpl::na,force_mutable>::left_value_type> + ::param_type l) +{ + return mutant_relation<TA,TB,::boost::mpl::na,force_mutable>(l,rel.right); +} + +template< class TA, class TB, class Info, bool force_mutable> +mutant_relation<TA,TB,Info,force_mutable> + copy_with_right_replaced(mutant_relation<TA,TB,Info,force_mutable> const& rel, + BOOST_DEDUCED_TYPENAME ::boost::call_traits< BOOST_DEDUCED_TYPENAME + mutant_relation<TA,TB,Info,force_mutable>::right_value_type> + ::param_type r) +{ + return mutant_relation<TA,TB,Info,force_mutable>(rel.left,r,rel.info); +} + +template< class TA, class TB, bool force_mutable> +mutant_relation<TA,TB,::boost::mpl::na,force_mutable> + copy_with_right_replaced(mutant_relation<TA,TB,::boost::mpl::na,force_mutable> const& rel, + BOOST_DEDUCED_TYPENAME ::boost::call_traits< BOOST_DEDUCED_TYPENAME + mutant_relation<TA,TB,::boost::mpl::na,force_mutable>::right_value_type> + ::param_type r) +{ + return mutant_relation<TA,TB,::boost::mpl::na,force_mutable>(rel.left,r); +} + +} // namespace detail + } // namespace relation } // namespace bimaps } // namespace boost diff --git a/boost/bimap/relation/pair_layout.hpp b/boost/bimap/relation/pair_layout.hpp index 24368db105..24368db105 100644..100755 --- a/boost/bimap/relation/pair_layout.hpp +++ b/boost/bimap/relation/pair_layout.hpp diff --git a/boost/bimap/relation/structured_pair.hpp b/boost/bimap/relation/structured_pair.hpp index 2325b3d323..53a0b300bc 100644 --- a/boost/bimap/relation/structured_pair.hpp +++ b/boost/bimap/relation/structured_pair.hpp @@ -499,6 +499,50 @@ bool operator>=(const std::pair<F,S> & a, } +namespace detail { + +template< class FirstType, class SecondType, class Info, class Layout> +structured_pair<FirstType,SecondType,Info,Layout> + copy_with_first_replaced(structured_pair<FirstType,SecondType,Info,Layout> const& p, + BOOST_DEDUCED_TYPENAME ::boost::call_traits< BOOST_DEDUCED_TYPENAME + structured_pair<FirstType,SecondType,Info,Layout>::first_type> + ::param_type f) +{ + return structured_pair<FirstType,SecondType,Info,Layout>(f,p.second,p.info); +} + +template< class FirstType, class SecondType, class Layout> +structured_pair<FirstType,SecondType,::boost::mpl::na,Layout> + copy_with_first_replaced(structured_pair<FirstType,SecondType,::boost::mpl::na,Layout> const& p, + BOOST_DEDUCED_TYPENAME ::boost::call_traits< BOOST_DEDUCED_TYPENAME + structured_pair<FirstType,SecondType,::boost::mpl::na,Layout>::first_type> + ::param_type f) +{ + return structured_pair<FirstType,SecondType,::boost::mpl::na,Layout>(f,p.second); +} + +template< class FirstType, class SecondType, class Info, class Layout> +structured_pair<FirstType,SecondType,Info,Layout> + copy_with_second_replaced(structured_pair<FirstType,SecondType,Info,Layout> const& p, + BOOST_DEDUCED_TYPENAME ::boost::call_traits< BOOST_DEDUCED_TYPENAME + structured_pair<FirstType,SecondType,Info,Layout>::second_type> + ::param_type s) +{ + return structured_pair<FirstType,SecondType,Info,Layout>(p.first,s,p.info); +} + +template< class FirstType, class SecondType, class Layout> +structured_pair<FirstType,SecondType,::boost::mpl::na,Layout> + copy_with_second_replaced(structured_pair<FirstType,SecondType,::boost::mpl::na,Layout> const& p, + BOOST_DEDUCED_TYPENAME ::boost::call_traits< BOOST_DEDUCED_TYPENAME + structured_pair<FirstType,SecondType,::boost::mpl::na,Layout>::second_type> + ::param_type s) +{ + return structured_pair<FirstType,SecondType,::boost::mpl::na,Layout>(p.first,s); +} + +} // namespace detail + } // namespace relation } // namespace bimaps diff --git a/boost/bimap/relation/support/get.hpp b/boost/bimap/relation/support/get.hpp index 3a3afde15d..3a3afde15d 100644..100755 --- a/boost/bimap/relation/support/get.hpp +++ b/boost/bimap/relation/support/get.hpp diff --git a/boost/bimap/relation/support/get_pair_functor.hpp b/boost/bimap/relation/support/get_pair_functor.hpp index 5f37bf6cfe..5f37bf6cfe 100644..100755 --- a/boost/bimap/relation/support/get_pair_functor.hpp +++ b/boost/bimap/relation/support/get_pair_functor.hpp diff --git a/boost/bimap/relation/support/is_tag_of_member_at.hpp b/boost/bimap/relation/support/is_tag_of_member_at.hpp index b2b1b7497b..b2b1b7497b 100644..100755 --- a/boost/bimap/relation/support/is_tag_of_member_at.hpp +++ b/boost/bimap/relation/support/is_tag_of_member_at.hpp diff --git a/boost/bimap/relation/support/member_with_tag.hpp b/boost/bimap/relation/support/member_with_tag.hpp index a8324ff281..a8324ff281 100644..100755 --- a/boost/bimap/relation/support/member_with_tag.hpp +++ b/boost/bimap/relation/support/member_with_tag.hpp diff --git a/boost/bimap/relation/support/opposite_tag.hpp b/boost/bimap/relation/support/opposite_tag.hpp index 174bd985c0..174bd985c0 100644..100755 --- a/boost/bimap/relation/support/opposite_tag.hpp +++ b/boost/bimap/relation/support/opposite_tag.hpp diff --git a/boost/bimap/relation/support/pair_by.hpp b/boost/bimap/relation/support/pair_by.hpp index 1ce25fbe5c..1ce25fbe5c 100644..100755 --- a/boost/bimap/relation/support/pair_by.hpp +++ b/boost/bimap/relation/support/pair_by.hpp diff --git a/boost/bimap/relation/support/pair_type_by.hpp b/boost/bimap/relation/support/pair_type_by.hpp index 64f98d1ecc..64f98d1ecc 100644..100755 --- a/boost/bimap/relation/support/pair_type_by.hpp +++ b/boost/bimap/relation/support/pair_type_by.hpp diff --git a/boost/bimap/relation/support/value_type_of.hpp b/boost/bimap/relation/support/value_type_of.hpp index 9dc5761119..9dc5761119 100644..100755 --- a/boost/bimap/relation/support/value_type_of.hpp +++ b/boost/bimap/relation/support/value_type_of.hpp diff --git a/boost/bimap/relation/symmetrical_base.hpp b/boost/bimap/relation/symmetrical_base.hpp index ea787c3731..ea787c3731 100644..100755 --- a/boost/bimap/relation/symmetrical_base.hpp +++ b/boost/bimap/relation/symmetrical_base.hpp |