Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
flyweight.hpp File Reference
#include <boost/config.hpp>
#include <algorithm>
#include <boost/detail/workaround.hpp>
#include <boost/flyweight/detail/default_value_policy.hpp>
#include <boost/flyweight/detail/flyweight_core.hpp>
#include <boost/flyweight/detail/perfect_fwd.hpp>
#include <boost/flyweight/factory_tag.hpp>
#include <boost/flyweight/flyweight_fwd.hpp>
#include <boost/flyweight/locking_tag.hpp>
#include <boost/flyweight/simple_locking_fwd.hpp>
#include <boost/flyweight/static_holder_fwd.hpp>
#include <boost/flyweight/hashed_factory_fwd.hpp>
#include <boost/flyweight/holder_tag.hpp>
#include <boost/flyweight/refcounted_fwd.hpp>
#include <boost/flyweight/tag.hpp>
#include <boost/flyweight/tracking_tag.hpp>
#include <boost/mpl/assert.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/not.hpp>
#include <boost/mpl/or.hpp>
#include <boost/parameter/binding.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/utility/swap.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/type_traits/is_convertible.hpp>
#include <initializer_list>
Include dependency graph for flyweight.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  boost::flyweights::detail::flyweight_signature
 
struct  boost::flyweights::detail::flyweight_unmatched_signature
 
singleton  boost::flyweights::flyweight< T, Arg1, Arg2, Arg3, Arg4, Arg5 >
 
class  boost::flyweights::flyweight< T, Arg1, Arg2, Arg3, Arg4, Arg5 >::initializer
 

Namespaces

 boost
 Duration formatting facet for input.
 
 boost::flyweights
 
 boost::flyweights::detail
 

Macros

#define BOOST_FLYWEIGHT_PERFECT_FWD_CTR_BODY(args)   :h(core::insert(BOOST_FLYWEIGHT_FORWARD(args))){}
 
#define BOOST_FLYWEIGHT_TYPENAME_TEMPL_ARGS(n)
 
#define BOOST_FLYWEIGHT_TEMPL_ARGS(n)   Arg##n##1,Arg##n##2,Arg##n##3,Arg##n##4,Arg##n##5
 
#define BOOST_FLYWEIGHT_COMPLETE_COMP_OPS(t, a1, a2)
 

Functions

template<typename T1 , typename Arg11 , typename Arg12 , typename Arg13 , typename Arg14 , typename Arg15 , typename T2 , typename Arg21 , typename Arg22 , typename Arg23 , typename Arg24 , typename Arg25 >
bool boost::flyweights::operator== (const flyweight< T1, Arg11, Arg12, Arg13, Arg14, Arg15 > &x, const flyweight< T2, Arg21, Arg22, Arg23, Arg24, Arg25 > &y)
 
template<typename T1 , typename Arg11 , typename Arg12 , typename Arg13 , typename Arg14 , typename Arg15 , typename T2 , typename Arg21 , typename Arg22 , typename Arg23 , typename Arg24 , typename Arg25 >
bool boost::flyweights::operator< (const flyweight< T1, Arg11, Arg12, Arg13, Arg14, Arg15 > &x, const flyweight< T2, Arg21, Arg22, Arg23, Arg24, Arg25 > &y)
 
template<typename T1 , typename Arg11 , typename Arg12 , typename Arg13 , typename Arg14 , typename Arg15 , typename T2 >
bool boost::flyweights::operator== (const flyweight< T1, Arg11, Arg12, Arg13, Arg14, Arg15 > &x, const T2 &y)
 
template<typename T1 , typename T2 , typename Arg21 , typename Arg22 , typename Arg23 , typename Arg24 , typename Arg25 >
bool boost::flyweights::operator== (const T1 &x, const flyweight< T2, Arg21, Arg22, Arg23, Arg24, Arg25 > &y)
 
template<typename T1 , typename Arg11 , typename Arg12 , typename Arg13 , typename Arg14 , typename Arg15 , typename T2 >
bool boost::flyweights::operator< (const flyweight< T1, Arg11, Arg12, Arg13, Arg14, Arg15 > &x, const T2 &y)
 
template<typename T1 , typename T2 , typename Arg21 , typename Arg22 , typename Arg23 , typename Arg24 , typename Arg25 >
bool boost::flyweights::operator< (const T1 &x, const flyweight< T2, Arg21, Arg22, Arg23, Arg24, Arg25 > &y)
 
template<typename T1 BOOST_PP_COMMA() typename Arg11, typename Arg12 , typename Arg13 , typename Arg14 , typename Arg15 BOOST_PP_COMMA() typename T2 BOOST_PP_COMMA() typename Arg21, typename Arg22 , typename Arg23 , typename Arg24 , typename Arg25 >
bool boost::flyweights::operator!= (const flyweight< T1 BOOST_PP_COMMA() Arg11, Arg12, Arg13, Arg14, Arg15 > &x, const flyweight< T2 BOOST_PP_COMMA() Arg21, Arg22, Arg23, Arg24, Arg25 > &y)
 
template<typename T1 BOOST_PP_COMMA() typename Arg11, typename Arg12 , typename Arg13 , typename Arg14 , typename Arg15 BOOST_PP_COMMA() typename T2 BOOST_PP_COMMA() typename Arg21, typename Arg22 , typename Arg23 , typename Arg24 , typename Arg25 >
bool boost::flyweights::operator> (const flyweight< T1 BOOST_PP_COMMA() Arg11, Arg12, Arg13, Arg14, Arg15 > &x, const flyweight< T2 BOOST_PP_COMMA() Arg21, Arg22, Arg23, Arg24, Arg25 > &y)
 
template<typename T1 BOOST_PP_COMMA() typename Arg11, typename Arg12 , typename Arg13 , typename Arg14 , typename Arg15 BOOST_PP_COMMA() typename T2 BOOST_PP_COMMA() typename Arg21, typename Arg22 , typename Arg23 , typename Arg24 , typename Arg25 >
bool boost::flyweights::operator>= (const flyweight< T1 BOOST_PP_COMMA() Arg11, Arg12, Arg13, Arg14, Arg15 > &x, const flyweight< T2 BOOST_PP_COMMA() Arg21, Arg22, Arg23, Arg24, Arg25 > &y)
 
template<typename T1 BOOST_PP_COMMA() typename Arg11, typename Arg12 , typename Arg13 , typename Arg14 , typename Arg15 BOOST_PP_COMMA() typename T2 BOOST_PP_COMMA() typename Arg21, typename Arg22 , typename Arg23 , typename Arg24 , typename Arg25 >
bool boost::flyweights::operator<= (const flyweight< T1 BOOST_PP_COMMA() Arg11, Arg12, Arg13, Arg14, Arg15 > &x, const flyweight< T2 BOOST_PP_COMMA() Arg21, Arg22, Arg23, Arg24, Arg25 > &y)
 
template<typename T1 BOOST_PP_COMMA() typename Arg11, typename Arg12 , typename Arg13 , typename Arg14 , typename Arg15 BOOST_PP_COMMA() typename T2>
bool boost::flyweights::operator!= (const flyweight< T1 BOOST_PP_COMMA() Arg11, Arg12, Arg13, Arg14, Arg15 > &x, const T2 &y)
 
template<typename T1 BOOST_PP_COMMA() typename Arg11, typename Arg12 , typename Arg13 , typename Arg14 , typename Arg15 BOOST_PP_COMMA() typename T2>
bool boost::flyweights::operator> (const flyweight< T1 BOOST_PP_COMMA() Arg11, Arg12, Arg13, Arg14, Arg15 > &x, const T2 &y)
 
template<typename T1 BOOST_PP_COMMA() typename Arg11, typename Arg12 , typename Arg13 , typename Arg14 , typename Arg15 BOOST_PP_COMMA() typename T2>
bool boost::flyweights::operator>= (const flyweight< T1 BOOST_PP_COMMA() Arg11, Arg12, Arg13, Arg14, Arg15 > &x, const T2 &y)
 
template<typename T1 BOOST_PP_COMMA() typename Arg11, typename Arg12 , typename Arg13 , typename Arg14 , typename Arg15 BOOST_PP_COMMA() typename T2>
bool boost::flyweights::operator<= (const flyweight< T1 BOOST_PP_COMMA() Arg11, Arg12, Arg13, Arg14, Arg15 > &x, const T2 &y)
 
template<typename T1 BOOST_PP_COMMA() typename T2 BOOST_PP_COMMA() typename Arg21, typename Arg22 , typename Arg23 , typename Arg24 , typename Arg25 >
bool boost::flyweights::operator!= (const T1 &x, const flyweight< T2 BOOST_PP_COMMA() Arg21, Arg22, Arg23, Arg24, Arg25 > &y)
 
template<typename T1 BOOST_PP_COMMA() typename T2 BOOST_PP_COMMA() typename Arg21, typename Arg22 , typename Arg23 , typename Arg24 , typename Arg25 >
bool boost::flyweights::operator> (const T1 &x, const flyweight< T2 BOOST_PP_COMMA() Arg21, Arg22, Arg23, Arg24, Arg25 > &y)
 
template<typename T1 BOOST_PP_COMMA() typename T2 BOOST_PP_COMMA() typename Arg21, typename Arg22 , typename Arg23 , typename Arg24 , typename Arg25 >
bool boost::flyweights::operator>= (const T1 &x, const flyweight< T2 BOOST_PP_COMMA() Arg21, Arg22, Arg23, Arg24, Arg25 > &y)
 
template<typename T1 BOOST_PP_COMMA() typename T2 BOOST_PP_COMMA() typename Arg21, typename Arg22 , typename Arg23 , typename Arg24 , typename Arg25 >
bool boost::flyweights::operator<= (const T1 &x, const flyweight< T2 BOOST_PP_COMMA() Arg21, Arg22, Arg23, Arg24, Arg25 > &y)
 
template<typename T , typename Arg_1 , typename Arg_2 , typename Arg_3 , typename Arg_4 , typename Arg_5 >
void boost::flyweights::swap (flyweight< T, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5 > &x, flyweight< T, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5 > &y)
 
template<BOOST_TEMPLATED_STREAM_COMMA typename T, typename Arg_1 , typename Arg_2 , typename Arg_3 , typename Arg_4 , typename Arg_5 >
 boost::flyweights::BOOST_TEMPLATED_STREAM (ostream, ElemType, Traits)&operator<<(BOOST_TEMPLATED_STREAM(ostream
 
Traits const flyweight< T,
Arg_1, Arg_2, Arg_3, Arg_4,
Arg_5 > &x return out<< x.get();}template
< BOOST_TEMPLATED_STREAM_COMMA
typename T, typename Arg_1,
typename Arg_2, typename Arg_3,
typename Arg_4, typename Arg_5 > 
boost::flyweights::BOOST_TEMPLATED_STREAM (istream, ElemType, Traits)&operator>>(BOOST_TEMPLATED_STREAM(istream
 
value_type boost::flyweights::t (x.get())
 

Variables

 boost::flyweights::ElemType
 
Traits & boost::flyweights::out
 
Traits const flyweight< T,
Arg_1, Arg_2, Arg_3, Arg_4,
Arg_5 > &x return out<< x.get();}template
< BOOST_TEMPLATED_STREAM_COMMA
typename T, typename Arg_1,
typename Arg_2, typename Arg_3,
typename Arg_4, typename Arg_5 >
Traits & 
boost::flyweights::in
 
Traits const flyweight< T,
Arg_1, Arg_2, Arg_3, Arg_4,
Arg_5 > &x return out<< x.get();}template
< BOOST_TEMPLATED_STREAM_COMMA
typename T, typename Arg_1,
typename Arg_2, typename Arg_3,
typename Arg_4, typename Arg_5 >
Traits flyweight< T, Arg_1,
Arg_2, Arg_3, Arg_4, Arg_5 > & 
boost::flyweights::x
 
in boost::flyweights::t
 

Macro Definition Documentation

#define BOOST_FLYWEIGHT_COMPLETE_COMP_OPS (   t,
  a1,
  a2 
)
Value:
template<t> \
inline bool operator!=(const a1& x,const a2& y) \
{ \
return !(x==y); \
} \
\
template<t> \
inline bool operator>(const a1& x,const a2& y) \
{ \
return y<x; \
} \
\
template<t> \
inline bool operator>=(const a1& x,const a2& y) \
{ \
return !(x<y); \
} \
\
template<t> \
inline bool operator<=(const a1& x,const a2& y) \
{ \
return !(y<x); \
}
enable_if< typename gtl_and< y_p_y, typename is_point_concept< typename geometry_concept< PointType >::type >::type >::type, typename point_coordinate_type< PointType >::type >::type y(const PointType &point)
Definition: point_concept.hpp:199
Traits const flyweight< T, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5 > &x return out<< x.get();}template< BOOST_TEMPLATED_STREAM_COMMA typename T, typename Arg_1, typename Arg_2, typename Arg_3, typename Arg_4, typename Arg_5 > Traits flyweight< T, Arg_1, Arg_2, Arg_3, Arg_4, Arg_5 > & x
Definition: flyweight.hpp:423
bool operator>(failed, failed)
proto::terminal< detail::attribute_placeholder< mpl::int_< 1 > > >::type const a1
Definition: regex_primitives.hpp:826
proto::terminal< detail::attribute_placeholder< mpl::int_< 2 > > >::type const a2
Definition: regex_primitives.hpp:827
bool operator!=(const T1 &x, const flyweight< T2 BOOST_PP_COMMA() Arg21, Arg22, Arg23, Arg24, Arg25 > &y)
Definition: flyweight.hpp:390
bool operator>=(failed, failed)
bool operator<=(failed, failed)
#define BOOST_FLYWEIGHT_PERFECT_FWD_CTR_BODY (   args)    :h(core::insert(BOOST_FLYWEIGHT_FORWARD(args))){}
#define BOOST_FLYWEIGHT_TEMPL_ARGS (   n)    Arg##n##1,Arg##n##2,Arg##n##3,Arg##n##4,Arg##n##5
#define BOOST_FLYWEIGHT_TYPENAME_TEMPL_ARGS (   n)
Value:
typename Arg##n##1,typename Arg##n##2,typename Arg##n##3, \
typename Arg##n##4,typename Arg##n##5
#define n
Definition: register_functions_iterate.hpp:7