Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 > Struct Template Reference

#include <rule.hpp>

Inheritance diagram for boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >:
Collaboration diagram for boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >:

Classes

struct  attribute
 

Public Types

typedef mpl::int_
< generator_properties::all_properties
properties
 
typedef OutputIterator iterator_type
 
typedef rule< OutputIterator,
T1, T2, T3, T4 > 
this_type
 
typedef reference< this_type
const > 
reference_
 
typedef proto::terminal
< reference_ >::type 
terminal
 
typedef proto::extends
< terminal, this_type
base_type
 
typedef mpl::vector< T1, T2,
T3, T4 > 
template_params
 
typedef
detail::output_iterator
< OutputIterator, properties
output_iterator
 
typedef
spirit::detail::extract_locals
< template_params >::type 
locals_type
 
typedef
spirit::detail::extract_component
< karma::domain,
template_params >::type 
delimiter_type
 
typedef
spirit::detail::extract_sig
< template_params >::type 
sig_type
 
typedef
spirit::detail::extract_encoding
< template_params >::type 
encoding_type
 
typedef
spirit::detail::attr_from_sig
< sig_type >::type 
attr_type
 
typedef add_reference
< typename add_const
< attr_type >::type >::type 
attr_reference_type
 
typedef
spirit::detail::params_from_sig
< sig_type >::type 
parameter_types
 
typedef context< fusion::cons
< attr_reference_type,
parameter_types >, locals_type
context_type
 
typedef function< bool(output_iterator
&, context_type
&, delimiter_type const &)> 
function_type
 
typedef mpl::if_< is_same
< encoding_type, unused_type >
, unused_type, tag::char_code
< tag::encoding, encoding_type >
>::type 
encoding_modifier_type
 
typedef rule parameterized_subject_type
 
typedef rule< OutputIterator,
T1, T2, T3, T4 > 
derived_type
 
typedef karma::domain domain
 

Public Member Functions

 rule (std::string const &name_="unnamed-rule")
 
 rule (rule const &rhs)
 
template<typename Expr >
 rule (Expr const &expr, std::string const &name_="unnamed-rule")
 
ruleoperator= (rule const &rhs)
 
std::string const & name () const
 
void name (std::string const &str)
 
template<typename Expr >
ruleoperator= (Expr const &expr)
 
template<typename Context , typename Delimiter , typename Attribute >
bool generate (output_iterator &sink, Context &, Delimiter const &delim, Attribute const &attr) const
 
template<typename Context , typename Delimiter , typename Attribute , typename Params >
bool generate (output_iterator &sink, Context &caller_context, Delimiter const &delim, Attribute const &attr, Params const &params) const
 
template<typename Context >
info what (Context &) const
 
reference_ alias () const
 
proto::terminal< this_type >::type copy () const
 
rule const & get_parameterized_subject () const
 
rule< OutputIterator, T1, T2,
T3, T4 >const & 
derived () const
 

Static Public Member Functions

template<typename Auto , typename Expr >
static void define (rule &lhs, Expr const &expr, mpl::false_)
 
template<typename Auto , typename Expr >
static void define (rule &lhs, Expr const &expr, mpl::true_)
 

Public Attributes

std::string name_
 
function_type f
 

Static Public Attributes

static size_t const params_size
 

Friends

template<typename Expr >
ruleoperator%= (rule &r, Expr const &expr)
 
template<typename Expr >
ruleoperator%= (rule &r, Expr &&expr)
 

Member Typedef Documentation

template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef add_reference< typename add_const<attr_type>::type>::type boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::attr_reference_type
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef spirit::detail::attr_from_sig<sig_type>::type boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::attr_type
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef proto::extends<terminal, this_type> boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::base_type
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef context< fusion::cons<attr_reference_type, parameter_types> , locals_type> boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::context_type
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef spirit::detail::extract_component< karma::domain, template_params>::type boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::delimiter_type
typedef rule< OutputIterator, T1, T2, T3, T4 > boost::spirit::karma::generator< rule< OutputIterator, T1, T2, T3, T4 > >::derived_type
inherited
typedef karma::domain boost::spirit::karma::generator< rule< OutputIterator, T1, T2, T3, T4 > >::domain
inherited
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef mpl::if_< is_same<encoding_type, unused_type> , unused_type , tag::char_code<tag::encoding, encoding_type> >::type boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::encoding_modifier_type
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef spirit::detail::extract_encoding<template_params>::type boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::encoding_type
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef function< bool(output_iterator&, context_type&, delimiter_type const&)> boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::function_type
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef OutputIterator boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::iterator_type
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef spirit::detail::extract_locals<template_params>::type boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::locals_type
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef detail::output_iterator<OutputIterator, properties> boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::output_iterator
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef spirit::detail::params_from_sig<sig_type>::type boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::parameter_types
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef rule boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::parameterized_subject_type
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef mpl::int_<generator_properties::all_properties> boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::properties
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef reference<this_type const> boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::reference_
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef spirit::detail::extract_sig<template_params>::type boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::sig_type
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef mpl::vector<T1, T2, T3, T4> boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::template_params
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef proto::terminal<reference_>::type boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::terminal
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
typedef rule<OutputIterator, T1, T2, T3, T4> boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::this_type

Constructor & Destructor Documentation

template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::rule ( std::string const &  name_ = "unnamed-rule< OutputIterator, T1, T2, T3, T4 >")
inlineexplicit
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::rule ( rule< OutputIterator, T1, T2, T3, T4 > const &  rhs)
inline
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
template<typename Expr >
boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::rule ( Expr const &  expr,
std::string const &  name_ = "unnamed-rule< OutputIterator, T1, T2, T3, T4 >" 
)
inline

Member Function Documentation

template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
reference_ boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::alias ( ) const
inline
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
proto::terminal<this_type>::type boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::copy ( ) const
inline
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
template<typename Auto , typename Expr >
static void boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::define ( rule< OutputIterator, T1, T2, T3, T4 > &  lhs,
Expr const &  expr,
mpl::false_   
)
inlinestatic
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
template<typename Auto , typename Expr >
static void boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::define ( rule< OutputIterator, T1, T2, T3, T4 > &  lhs,
Expr const &  expr,
mpl::true_   
)
inlinestatic
rule< OutputIterator, T1, T2, T3, T4 > const& boost::spirit::karma::generator< rule< OutputIterator, T1, T2, T3, T4 > >::derived ( ) const
inlineinherited
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
template<typename Context , typename Delimiter , typename Attribute >
bool boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::generate ( output_iterator sink,
Context &  ,
Delimiter const &  delim,
Attribute const &  attr 
) const
inline
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
template<typename Context , typename Delimiter , typename Attribute , typename Params >
bool boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::generate ( output_iterator sink,
Context &  caller_context,
Delimiter const &  delim,
Attribute const &  attr,
Params const &  params 
) const
inline
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
rule const& boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::get_parameterized_subject ( ) const
inline
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
std::string const& boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::name ( ) const
inline
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
void boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::name ( std::string const &  str)
inline
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
rule& boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::operator= ( rule< OutputIterator, T1, T2, T3, T4 > const &  rhs)
inline
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
template<typename Expr >
rule& boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::operator= ( Expr const &  expr)
inline
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
template<typename Context >
info boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::what ( Context &  ) const
inline

Friends And Related Function Documentation

template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
template<typename Expr >
rule& operator%= ( rule< OutputIterator, T1, T2, T3, T4 > &  r,
Expr const &  expr 
)
friend
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
template<typename Expr >
rule& operator%= ( rule< OutputIterator, T1, T2, T3, T4 > &  r,
Expr &&  expr 
)
friend

Member Data Documentation

template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
function_type boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::f
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
std::string boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::name_
template<typename OutputIterator, typename T1, typename T2, typename T3, typename T4>
size_t const boost::spirit::karma::rule< OutputIterator, T1, T2, T3, T4 >::params_size
static

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