Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::proto::exprns_::extends< Expr, Derived, Domain, Arity > Struct Template Reference

extends<> class template for adding behaviors to a Proto expression template More...

#include <proto_fwd.hpp>

Public Types

typedef extends proto_extends
 
typedef Expr proto_base_expr_
 INTERNAL ONLY. More...
 
typedef
proto_base_expr_::proto_base_expr 
proto_base_expr
 
typedef Derived proto_derived_expr
 
typedef Domain::proto_generator proto_generator
 
typedef proto_base_expr::proto_tag proto_tag
 
typedef proto_base_expr::proto_args proto_args
 
typedef
proto_base_expr::proto_arity 
proto_arity
 
typedef
proto_base_expr::proto_grammar 
proto_grammar
 
typedef
proto_base_expr::address_of_hack_type_ 
proto_address_of_hack_type_
 
typedef void proto_is_expr_
 INTERNAL ONLY. More...
 
typedef
boost::proto::tag::proto_expr
< proto_tag, proto_domain > 
fusion_tag
 

Public Member Functions

BOOST_FORCEINLINE extends ()
 
BOOST_FORCEINLINE extends (extends const &that)
 
BOOST_FORCEINLINE extends (Expr const &expr_)
 
typedef BOOST_PROTO_REMOVE_TYPENAME (typename Domain) proto_domain
 
 BOOST_PP_REPEAT (BOOST_PROTO_MAX_ARITY, BOOST_PROTO_EXTENDS_CHILD,~) BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE static proto_derived_expr const make(Expr const &e)
 
BOOST_PROTO_DISABLE_MSVC_C4714
BOOST_FORCEINLINE
proto_base_expr
proto_base ()
 
BOOST_PROTO_DISABLE_MSVC_C4714
BOOST_FORCEINLINE
proto_base_expr const & 
proto_base () const
 
BOOST_PROTO_DISABLE_MSVC_C4714
BOOST_FORCEINLINE 
operator proto_address_of_hack_type_ () const
 
template<typename A >
BOOST_PROTO_DISABLE_MSVC_C4714
BOOST_FORCEINLINE
BOOST_PROTO_RESULT_OF
< proto_generator(typename
boost::proto::base_expr
< proto_domain,
boost::proto::tag::assign,
boost::proto::list2
< proto_derived_expr const
&, typename
boost::proto::result_of::as_child
< A BOOST_PP_EMPTY(),
proto_domain >::type > >::type) >
::type const 
operator= (A BOOST_PP_EMPTY()&a) const
 
template<typename A >
BOOST_PROTO_DISABLE_MSVC_C4714
BOOST_FORCEINLINE
BOOST_PROTO_RESULT_OF
< proto_generator(typename
boost::proto::base_expr
< proto_domain,
boost::proto::tag::assign,
boost::proto::list2
< proto_derived_expr const
&, typename
boost::proto::result_of::as_child
< A const, proto_domain >
::type > >::type) >::type
const 
operator= (A const &a) const
 
template<typename A >
BOOST_PROTO_DISABLE_MSVC_C4714
BOOST_FORCEINLINE
BOOST_PROTO_RESULT_OF
< proto_generator(typename
boost::proto::base_expr
< proto_domain,
boost::proto::tag::subscript,
boost::proto::list2
< proto_derived_expr const
&, typename
boost::proto::result_of::as_child
< A BOOST_PP_EMPTY(),
proto_domain >::type > >::type) >
::type const 
operator[] (A BOOST_PP_EMPTY()&a) const
 
template<typename A >
BOOST_PROTO_DISABLE_MSVC_C4714
BOOST_FORCEINLINE
BOOST_PROTO_RESULT_OF
< proto_generator(typename
boost::proto::base_expr
< proto_domain,
boost::proto::tag::subscript,
boost::proto::list2
< proto_derived_expr const
&, typename
boost::proto::result_of::as_child
< A const, proto_domain >
::type > >::type) >::type
const 
operator[] (A const &a) const
 

Public Attributes

Expr proto_expr_
 

Static Public Attributes

static const long proto_arity_c = proto_base_expr::proto_arity_c
 

Detailed Description

template<typename Expr, typename Derived, typename Domain, long Arity>
struct boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >

extends<> class template for adding behaviors to a Proto expression template

Member Typedef Documentation

template<typename Expr , typename Derived , typename Domain , long Arity>
typedef boost::proto::tag::proto_expr<proto_tag, proto_domain> boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::fusion_tag
template<typename Expr , typename Derived , typename Domain , long Arity>
typedef proto_base_expr::address_of_hack_type_ boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_address_of_hack_type_
template<typename Expr , typename Derived , typename Domain , long Arity>
typedef proto_base_expr::proto_args boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_args
template<typename Expr , typename Derived , typename Domain , long Arity>
typedef proto_base_expr::proto_arity boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_arity
template<typename Expr , typename Derived , typename Domain , long Arity>
typedef proto_base_expr_::proto_base_expr boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_base_expr
template<typename Expr , typename Derived , typename Domain , long Arity>
typedef Expr boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_base_expr_

INTERNAL ONLY.

template<typename Expr , typename Derived , typename Domain , long Arity>
typedef Derived boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_derived_expr
template<typename Expr , typename Derived , typename Domain , long Arity>
typedef extends boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_extends
template<typename Expr , typename Derived , typename Domain , long Arity>
typedef Domain ::proto_generator boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_generator
template<typename Expr , typename Derived , typename Domain , long Arity>
typedef proto_base_expr::proto_grammar boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_grammar
template<typename Expr , typename Derived , typename Domain , long Arity>
typedef void boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_is_expr_

INTERNAL ONLY.

template<typename Expr , typename Derived , typename Domain , long Arity>
typedef proto_base_expr::proto_tag boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_tag

Constructor & Destructor Documentation

template<typename Expr , typename Derived , typename Domain , long Arity>
BOOST_FORCEINLINE boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::extends ( )
inline
template<typename Expr , typename Derived , typename Domain , long Arity>
BOOST_FORCEINLINE boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::extends ( extends< Expr, Derived, Domain, Arity > const &  that)
inline
template<typename Expr , typename Derived , typename Domain , long Arity>
BOOST_FORCEINLINE boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::extends ( Expr const &  expr_)
inline

Member Function Documentation

template<typename Expr , typename Derived , typename Domain , long Arity>
boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::BOOST_PP_REPEAT ( BOOST_PROTO_MAX_ARITY  ,
BOOST_PROTO_EXTENDS_CHILD  ,
 
) const
inline
template<typename Expr , typename Derived , typename Domain , long Arity>
typedef boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::BOOST_PROTO_REMOVE_TYPENAME ( typename Domain  )
template<typename Expr , typename Derived , typename Domain , long Arity>
BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::operator proto_address_of_hack_type_ ( ) const
inline
template<typename Expr , typename Derived , typename Domain , long Arity>
template<typename A >
BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::base_expr< proto_domain , boost::proto::tag::assign , boost::proto::list2< proto_derived_expr const & , typename boost::proto::result_of::as_child<A const, proto_domain>::type > >::type ) >::type const boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::operator= ( A const &  a) const
inline
template<typename Expr , typename Derived , typename Domain , long Arity>
template<typename A >
BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::base_expr< proto_domain , boost::proto::tag::assign , boost::proto::list2< proto_derived_expr const & , typename boost::proto::result_of::as_child<A BOOST_PP_EMPTY (), proto_domain>::type > >::type ) >::type const boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::operator= ( A BOOST_PP_EMPTY()&  a) const
inline
template<typename Expr , typename Derived , typename Domain , long Arity>
template<typename A >
BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::base_expr< proto_domain , boost::proto::tag::subscript , boost::proto::list2< proto_derived_expr const & , typename boost::proto::result_of::as_child<A const, proto_domain>::type > >::type ) >::type const boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::operator[] ( A const &  a) const
inline
template<typename Expr , typename Derived , typename Domain , long Arity>
template<typename A >
BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::base_expr< proto_domain , boost::proto::tag::subscript , boost::proto::list2< proto_derived_expr const & , typename boost::proto::result_of::as_child<A BOOST_PP_EMPTY (), proto_domain>::type > >::type ) >::type const boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::operator[] ( A BOOST_PP_EMPTY()&  a) const
inline
template<typename Expr , typename Derived , typename Domain , long Arity>
BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE proto_base_expr& boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_base ( )
inline
template<typename Expr , typename Derived , typename Domain , long Arity>
BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE proto_base_expr const& boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_base ( ) const
inline

Member Data Documentation

template<typename Expr , typename Derived , typename Domain , long Arity>
const long boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_arity_c = proto_base_expr::proto_arity_c
static
template<typename Expr , typename Derived , typename Domain , long Arity>
Expr boost::proto::exprns_::extends< Expr, Derived, Domain, Arity >::proto_expr_

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