12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- // Boost.Bimap
- //
- // Copyright (c) 2006-2007 Matias Capeletto
- //
- // Distributed under the Boost Software License, Version 1.0.
- // (See accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt)
- /// \file detail/generate_relation_binder.hpp
- /// \brief Define macros to help building the set type of definitions
- #ifndef BOOST_BIMAP_DETAIL_GENERATE_RELATION_BINDER_HPP
- #define BOOST_BIMAP_DETAIL_GENERATE_RELATION_BINDER_HPP
- #if defined(_MSC_VER)
- #pragma once
- #endif
- #include <boost/config.hpp>
- #include <boost/mpl/apply.hpp>
- /*===========================================================================*/
- #define BOOST_BIMAP_GENERATE_RELATION_BINDER_0CP( \
- \
- SET_TYPE_OF \
- ) \
- \
- template< class Relation > \
- struct bind_to \
- { \
- typedef SET_TYPE_OF<Relation> type; \
- \
- };
- /*===========================================================================*/
- /*===========================================================================*/
- #define BOOST_BIMAP_GENERATE_RELATION_BINDER_1CP( \
- \
- SET_TYPE_OF, \
- CP1 \
- ) \
- \
- template< class Relation > \
- struct bind_to \
- { \
- typedef SET_TYPE_OF \
- < \
- Relation, \
- BOOST_DEDUCED_TYPENAME mpl::apply<CP1, \
- BOOST_DEDUCED_TYPENAME Relation::storage_base >::type \
- \
- > type; \
- \
- };
- /*===========================================================================*/
- /*===========================================================================*/
- #define BOOST_BIMAP_GENERATE_RELATION_BINDER_2CP( \
- \
- SET_TYPE_OF, \
- CP1, \
- CP2 \
- ) \
- \
- template< class Relation > \
- struct bind_to \
- { \
- typedef SET_TYPE_OF \
- < \
- Relation, \
- BOOST_DEDUCED_TYPENAME mpl::apply<CP1, \
- BOOST_DEDUCED_TYPENAME Relation::storage_base >::type, \
- BOOST_DEDUCED_TYPENAME mpl::apply<CP2, \
- BOOST_DEDUCED_TYPENAME Relation::storage_base >::type \
- \
- > type; \
- \
- };
- /*===========================================================================*/
- #endif // BOOST_BIMAP_DETAIL_GENERATE_RELATION_BINDER_HPP
|