6940608523
[SVN r76287]
398 lines
22 KiB
XML
398 lines
22 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--
|
|
Copyright 2012 Eric Niebler
|
|
|
|
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)
|
|
-->
|
|
<header name="boost/proto/proto_fwd.hpp">
|
|
<para>Forward declarations of all of proto's public types and functions. </para>
|
|
<namespace name="boost">
|
|
<namespace name="proto">
|
|
<struct name="callable">
|
|
<purpose>Base class for callable <conceptname>PolymorphicFunctionObject</conceptname>s</purpose>
|
|
<description>
|
|
<para>
|
|
When defining a callable <conceptname>PolymorphicFunctionObject</conceptname>, inherit
|
|
from <computeroutput>proto::callable</computeroutput> so that it can be used to create
|
|
a <conceptname>CallableTransform</conceptname>.
|
|
</para>
|
|
<para>
|
|
<computeroutput><classname>proto::is_callable</classname><T>::value</computeroutput> is
|
|
<computeroutput>true</computeroutput> for types that inherit from
|
|
<computeroutput>proto::callable</computeroutput>.
|
|
</para>
|
|
</description>
|
|
</struct>
|
|
<data-member name="N">
|
|
<description>
|
|
<para>Array size wildcard for Proto grammars that match array terminals.</para></description>
|
|
<type>int const</type>
|
|
</data-member>
|
|
<namespace name="functional">
|
|
<typedef name="make_terminal">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::terminal</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_unary_plus">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::unary_plus</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_negate">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::negate</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_dereference">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::dereference</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_complement">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::complement</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_address_of">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::address_of</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_logical_not">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::logical_not</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_pre_inc">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::pre_inc</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_pre_dec">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::pre_dec</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_post_inc">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::post_inc</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_post_dec">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::post_dec</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_shift_left">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::shift_left</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_shift_right">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::shift_right</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_multiplies">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::multiplies</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_divides">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::divides</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_modulus">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::modulus</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_plus">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::plus</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_minus">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::minus</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_less">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::less</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_greater">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::greater</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_less_equal">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::less_equal</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_greater_equal">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::greater_equal</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_equal_to">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::equal_to</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_not_equal_to">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::not_equal_to</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_logical_or">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::logical_or</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_logical_and">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::logical_and</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_bitwise_and">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::bitwise_and</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_bitwise_or">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::bitwise_or</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_bitwise_xor">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::bitwise_xor</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_comma">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::comma</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_mem_ptr">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::mem_ptr</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_shift_left_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::shift_left_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_shift_right_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::shift_right_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_multiplies_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::multiplies_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_divides_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::divides_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_modulus_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::modulus_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_plus_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::plus_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_minus_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::minus_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_bitwise_and_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::bitwise_and_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_bitwise_or_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::bitwise_or_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_bitwise_xor_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::bitwise_xor_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_subscript">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::subscript</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_if_else">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::if_else_</classname> ></type>
|
|
</typedef>
|
|
<typedef name="make_function">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::function</classname> ></type>
|
|
</typedef>
|
|
</namespace>
|
|
<typedef name="_flatten">
|
|
<type><classname>proto::functional::flatten</classname></type>
|
|
</typedef>
|
|
<typedef name="_make_pair">
|
|
<type><classname>proto::functional::make_pair</classname></type>
|
|
</typedef>
|
|
<typedef name="_first">
|
|
<type><classname>proto::functional::first</classname></type>
|
|
</typedef>
|
|
<typedef name="_second">
|
|
<type><classname>proto::functional::second</classname></type>
|
|
</typedef>
|
|
<typedef name="_pop_back">
|
|
<type><classname>proto::functional::pop_back</classname></type>
|
|
</typedef>
|
|
<typedef name="_pop_front">
|
|
<type><classname>proto::functional::pop_front</classname></type>
|
|
</typedef>
|
|
<typedef name="_push_back">
|
|
<type><classname>proto::functional::push_back</classname></type>
|
|
</typedef>
|
|
<typedef name="_push_front">
|
|
<type><classname>proto::functional::push_front</classname></type>
|
|
</typedef>
|
|
<typedef name="_reverse">
|
|
<type><classname>proto::functional::reverse</classname></type>
|
|
</typedef>
|
|
<typedef name="_eval">
|
|
<type><classname>proto::functional::eval</classname></type>
|
|
</typedef>
|
|
<typedef name="_deep_copy">
|
|
<type><classname>proto::functional::deep_copy</classname></type>
|
|
</typedef>
|
|
<typedef name="_make_terminal">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::terminal</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_unary_plus">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::unary_plus</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_negate">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::negate</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_dereference">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::dereference</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_complement">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::complement</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_address_of">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::address_of</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_logical_not">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::logical_not</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_pre_inc">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::pre_inc</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_pre_dec">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::pre_dec</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_post_inc">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::post_inc</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_post_dec">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::post_dec</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_shift_left">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::shift_left</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_shift_right">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::shift_right</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_multiplies">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::multiplies</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_divides">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::divides</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_modulus">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::modulus</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_plus">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::plus</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_minus">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::minus</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_less">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::less</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_greater">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::greater</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_less_equal">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::less_equal</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_greater_equal">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::greater_equal</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_equal_to">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::equal_to</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_not_equal_to">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::not_equal_to</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_logical_or">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::logical_or</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_logical_and">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::logical_and</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_bitwise_and">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::bitwise_and</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_bitwise_or">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::bitwise_or</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_bitwise_xor">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::bitwise_xor</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_comma">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::comma</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_mem_ptr">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::mem_ptr</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_shift_left_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::shift_left_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_shift_right_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::shift_right_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_multiplies_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::multiplies_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_divides_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::divides_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_modulus_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::modulus_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_plus_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::plus_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_minus_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::minus_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_bitwise_and_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::bitwise_and_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_bitwise_or_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::bitwise_or_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_bitwise_xor_assign">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::bitwise_xor_assign</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_subscript">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::subscript</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_if_else">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::if_else_</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_make_function">
|
|
<type><classname>proto::functional::make_expr</classname>< <classname>proto::tag::function</classname> ></type>
|
|
</typedef>
|
|
<typedef name="_childN">
|
|
<purpose>For each <replaceable>N</replaceable> in <computeroutput>[0,BOOST_PROTO_MAX_ARITY)</computeroutput></purpose>
|
|
<type><classname>proto::_child_c</classname>< <replaceable>N</replaceable> ></type>
|
|
</typedef>
|
|
<typedef name="_child">
|
|
<type><classname alt="proto::_childN">proto::_child0</classname></type>
|
|
</typedef>
|
|
<typedef name="_left">
|
|
<type><classname alt="proto::_childN">proto::_child0</classname></type>
|
|
</typedef>
|
|
<typedef name="_right">
|
|
<type><classname alt="proto::_childN">proto::_child1</classname></type>
|
|
</typedef>
|
|
</namespace>
|
|
</namespace>
|
|
<macro name="BOOST_PROTO_MAX_ARITY">
|
|
<purpose>Controls the maximum number of child nodes an expression may have.</purpose>
|
|
<description>
|
|
<para>
|
|
<computeroutput>BOOST_PROTO_MAX_ARITY</computeroutput> defaults to 10. It may be set higher or lower, but not
|
|
lower than 3. Setting it higher will have a negative effect on compile times.
|
|
</para>
|
|
<para>
|
|
See also <computeroutput><macroname>BOOST_PROTO_MAX_FUNCTION_CALL_ARITY</macroname></computeroutput>.
|
|
</para>
|
|
</description>
|
|
</macro>
|
|
<macro name="BOOST_PROTO_MAX_LOGICAL_ARITY">
|
|
<purpose>Controls the maximum number of sub-grammars that
|
|
<computeroutput>
|
|
<classname alt="boost::proto::or_">proto::or_<></classname>
|
|
</computeroutput> and
|
|
<computeroutput>
|
|
<classname alt="boost::proto::and_">proto::and_<></classname>
|
|
</computeroutput> accept.</purpose>
|
|
<description>
|
|
<para>
|
|
<computeroutput>BOOST_PROTO_MAX_LOGICAL_ARITY</computeroutput> defaults to 10. It may be set higher or lower. Setting
|
|
it higher will have a negative effect on compile times.
|
|
</para>
|
|
</description>
|
|
</macro>
|
|
<macro name="BOOST_PROTO_MAX_FUNCTION_CALL_ARITY">
|
|
<purpose>Controls the maximum number of arguments that <computeroutput>operator()</computeroutput> overloads
|
|
accept.</purpose>
|
|
<description>
|
|
<para>
|
|
When setting
|
|
<computeroutput>
|
|
<macroname>BOOST_PROTO_MAX_ARITY</macroname>
|
|
</computeroutput> higher than the default, compile times
|
|
slow down considerably. That is due in large part to the explosion in the number of
|
|
<computeroutput>operator()</computeroutput> overloads that must be generated for each
|
|
Proto expression type. By setting <computeroutput>BOOST_PROTO_MAX_FUNCTION_CALL_ARITY</computeroutput>
|
|
lower than <computeroutput><macroname>BOOST_PROTO_MAX_ARITY</macroname></computeroutput>,
|
|
compile times can be sped up considerably.
|
|
</para>
|
|
</description>
|
|
</macro>
|
|
</header>
|