UNPKG

boost-react-native-bundle

Version:

Boost library as in https://sourceforge.net/projects/boost/files/boost/1.57.0/

486 lines (476 loc) 20.1 kB
<?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/transform/arg.hpp"> <para>Contains definition of the childN transforms and friends.</para> <namespace name="boost"> <namespace name="proto"> <struct name="_expr"> <inherit><classname>proto::transform</classname>&lt; _expr &gt;</inherit> <purpose>A <conceptname>PrimitiveTransform</conceptname> that returns the current expression unmodified. </purpose> <description> <para> Example: <programlisting><classname>proto::terminal</classname>&lt;int&gt;::type i = {42}; <classname>proto::terminal</classname>&lt;int&gt;::type &amp; j = proto::_expr()(i); assert( boost::addressof(i) == boost::addressof(j) );</programlisting> </para> </description> <struct name="impl"> <template> <template-type-parameter name="Expr"/> <template-type-parameter name="State"/> <template-type-parameter name="Data"/> </template> <inherit><classname>proto::transform_impl</classname>&lt; Expr, State, Data &gt;</inherit> <typedef name="result_type"> <type>Expr</type> </typedef> <method-group name="public member functions"> <method name="operator()" cv="const"> <type>Expr</type> <parameter name="expr"> <paramtype>typename impl::expr_param</paramtype> <description> <para>The current expression. </para> </description> </parameter> <parameter name=""> <paramtype>typename impl::state_param</paramtype> </parameter> <parameter name=""> <paramtype>typename impl::data_param</paramtype> </parameter> <description> <para> Returns the current expression. </para> </description> <returns> <para> <computeroutput>expr</computeroutput> </para> </returns> <throws> <simpara>Will not throw.</simpara> </throws> </method> </method-group> </struct> </struct> <struct name="_state"> <inherit><classname>proto::transform</classname>&lt; _state &gt;</inherit> <purpose>A <conceptname>PrimitiveTransform</conceptname> that returns the current state unmodified. </purpose> <description> <para> Example: <programlisting><classname>proto::terminal</classname>&lt;int&gt;::type i = {42}; char ch = proto::_state()(i, 'a'); assert( ch == 'a' );</programlisting> </para> </description> <struct name="impl"> <template> <template-type-parameter name="Expr"/> <template-type-parameter name="State"/> <template-type-parameter name="Data"/> </template> <inherit><classname>proto::transform_impl</classname>&lt; Expr, State, Data &gt;</inherit> <typedef name="result_type"> <type>State</type> </typedef> <method-group name="public member functions"> <method name="operator()" cv="const"> <type>State</type> <parameter name=""> <paramtype>typename impl::expr_param</paramtype> </parameter> <parameter name="state"> <paramtype>typename impl::state_param</paramtype> <description> <para>The current state. </para> </description> </parameter> <parameter name=""> <paramtype>typename impl::data_param</paramtype> </parameter> <description> <para> Returns the current state. </para> </description> <returns> <para> <computeroutput>state</computeroutput> </para> </returns> <throws> <simpara>Will not throw.</simpara> </throws> </method> </method-group> </struct> </struct> <struct name="_data"> <inherit><classname>proto::transform</classname>&lt; _data &gt;</inherit> <purpose> A <conceptname>PrimitiveTransform</conceptname> that returns the current data unmodified. If the data (third) parameter is a transform environment, it returns the value associated with the <code><classname>proto::data_type</classname></code> key. Otherwise, it returns the data parameter unmodified. </purpose> <description> <para> If the data (third) parameter is a transform environment, it returns the value associated with the <code><classname>proto::data_type</classname></code> key. Otherwise, it returns the data parameter unmodified. </para> <para> <emphasis role="bold">Example:</emphasis> <programlisting><classname>proto::terminal</classname>&lt;int&gt;::type i = {42}; std::string str("hello"); std::string &amp; d1 = proto::_data()(i, 'a', str); assert( &amp;str == &amp;d1 ); std::string &amp; d2 = proto::_data()(i, 'a', (<globalname>proto::data</globalname> = boost::ref(str))); assert( &amp;str == &amp;d2 );</programlisting> </para> </description> <struct name="impl"> <template> <template-type-parameter name="Expr"/> <template-type-parameter name="State"/> <template-type-parameter name="Data"/> </template> <inherit><type> mpl::if_c&lt; <classname>proto::is_env</classname>&lt;Data&gt;::value, <classname>proto::_env_var</classname>&lt;<classname>proto::data_type</classname>&gt;, <classname>proto::_env</classname> &gt;::type::template impl&lt;Expr, State, Data&gt;</type></inherit> </struct> </struct> <struct name="_child_c"> <template> <template-nontype-parameter name="N"> <type>int</type> </template-nontype-parameter> </template> <inherit><classname>proto::transform</classname>&lt; _child_c&lt;N&gt; &gt;</inherit> <purpose>A <conceptname>PrimitiveTransform</conceptname> that returns N-th child of the current expression. </purpose> <description> <para> Example: <programlisting><classname>proto::terminal</classname>&lt;int&gt;::type i = {42}; <classname>proto::terminal</classname>&lt;int&gt;::type &amp; j = proto::_child_c&lt;0&gt;()(-i); assert( boost::addressof(i) == boost::addressof(j) );</programlisting> </para> </description> <struct name="impl"> <template> <template-type-parameter name="Expr"/> <template-type-parameter name="State"/> <template-type-parameter name="Data"/> </template> <inherit><classname>proto::transform_impl</classname>&lt; Expr, State, Data &gt;</inherit> <typedef name="result_type"> <type>typename <classname>proto::result_of::child_c</classname>&lt; Expr, N &gt;::type</type> </typedef> <method-group name="public member functions"> <method name="operator()" cv="const"> <type>typename <classname>proto::result_of::child_c</classname>&lt; Expr, N &gt;::type</type> <parameter name="expr"> <paramtype>typename impl::expr_param</paramtype> <description> <para>The current expression. </para> </description> </parameter> <parameter name=""> <paramtype>typename impl::state_param</paramtype> </parameter> <parameter name=""> <paramtype>typename impl::data_param</paramtype> </parameter> <description> <para> Returns the N-th child of <computeroutput>expr</computeroutput> </para> </description> <requires> <para> <computeroutput>Expr::proto_arity::value &gt; N</computeroutput> </para> </requires> <returns> <para> <computeroutput><functionname>proto::child_c</functionname>&lt;N&gt;(expr)</computeroutput> </para> </returns> <throws> <simpara>Will not throw.</simpara> </throws> </method> </method-group> </struct> </struct> <struct name="_value"> <inherit><classname>proto::transform</classname>&lt; _value &gt;</inherit> <purpose>A <conceptname>PrimitiveTransform</conceptname> that returns the value of the current terminal expression. </purpose> <description> <para> Example: <programlisting><classname>proto::terminal</classname>&lt;int&gt;::type i = {42}; int j = proto::_value()(i); assert( 42 == j );</programlisting> </para> </description> <struct name="impl"> <template> <template-type-parameter name="Expr"/> <template-type-parameter name="State"/> <template-type-parameter name="Data"/> </template> <inherit><classname>proto::transform_impl</classname>&lt; Expr, State, Data &gt;</inherit> <typedef name="result_type"> <type>typename <classname>proto::result_of::value</classname>&lt; Expr &gt;::type</type> </typedef> <method-group name="public member functions"> <method name="operator()" cv="const"> <type>typename <classname>proto::result_of::value</classname>&lt; Expr &gt;::type</type> <parameter name="expr"> <paramtype>typename impl::expr_param</paramtype> <description> <para>The current expression. </para> </description> </parameter> <parameter name=""> <paramtype>typename impl::state_param</paramtype> </parameter> <parameter name=""> <paramtype>typename impl::data_param</paramtype> </parameter> <description> <para> Returns the value of the specified terminal expression. </para> </description> <requires> <para> <computeroutput>Expr::proto_arity::value == 0</computeroutput>. </para> </requires> <returns> <para> <computeroutput><functionname>proto::value</functionname>(expr)</computeroutput> </para> </returns> <throws> <simpara>Will not throw.</simpara> </throws> </method> </method-group> </struct> </struct> <struct name="_void"> <inherit><classname>proto::transform</classname>&lt; _void &gt;</inherit> <purpose>A <conceptname>PrimitiveTransform</conceptname> that does nothing and returns void. </purpose> <struct name="impl"> <template> <template-type-parameter name="Expr"/> <template-type-parameter name="State"/> <template-type-parameter name="Data"/> </template> <inherit><classname>proto::transform_impl</classname>&lt; Expr, State, Data &gt;</inherit> <typedef name="result_type"> <type>void</type> </typedef> <method-group name="public member functions"> <method name="operator()" cv="const"> <type>void</type> <parameter name=""> <paramtype>typename impl::expr_param</paramtype> </parameter> <parameter name=""> <paramtype>typename impl::state_param</paramtype> </parameter> <parameter name=""> <paramtype>typename impl::data_param</paramtype> </parameter> <description> <para> Does nothing. </para> </description> <throws> <simpara>Will not throw.</simpara> </throws> </method> </method-group> </struct> </struct> <struct name="_byref"> <inherit><classname>proto::callable</classname></inherit> <purpose>A unary callable <conceptname>PolymorphicFunctionObject</conceptname> that wraps its argument in a <computeroutput>boost::reference_wrapper&lt;&gt;</computeroutput>.</purpose> <description> <para> Example: <programlisting><classname>proto::terminal</classname>&lt;int&gt;::type i = {42}; boost::reference_wrapper&lt;<classname>proto::terminal</classname>&lt;int&gt;::type&gt; j = <classname>proto::when</classname>&lt;<classname>proto::_</classname>, proto::_byref(_)&gt;()(i); assert( boost::addressof(i) == boost::addressof(j.get()) );</programlisting> </para> </description> <struct-specialization name="result"> <template> <template-type-parameter name="This"/> <template-type-parameter name="T"/> </template> <specialization> <template-arg>This(T &amp;)</template-arg> </specialization> <typedef name="type"> <type>boost::reference_wrapper&lt; T &gt; const</type> </typedef> </struct-specialization> <struct-specialization name="result"> <template> <template-type-parameter name="This"/> <template-type-parameter name="T"/> </template> <specialization> <template-arg>This(T)</template-arg> </specialization> <typedef name="type"> <type>boost::reference_wrapper&lt; T const &gt; const</type> </typedef> </struct-specialization> <method-group name="public member functions"> <method name="operator()" cv="const"> <type>boost::reference_wrapper&lt; T &gt; const</type> <template> <template-type-parameter name="T"/> </template> <parameter name="t"> <paramtype>T &amp;</paramtype> <description> <para>The object to wrap </para> </description> </parameter> <description> <para> Wrap the parameter <computeroutput>t</computeroutput> in a <computeroutput>boost::reference_wrapper&lt;&gt;</computeroutput> </para> </description> <returns> <para> <computeroutput>boost::ref(t)</computeroutput> </para> </returns> <throws> <simpara>Will not throw.</simpara> </throws> </method> <method name="operator()" cv="const"> <type>boost::reference_wrapper&lt; T const &gt; const</type> <template> <template-type-parameter name="T"/> </template> <parameter name="t"> <paramtype>T const &amp;</paramtype> </parameter> <description> <para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para> </description> </method> </method-group> </struct> <struct name="_byval"> <inherit><classname>proto::callable</classname></inherit> <purpose> A unary callable <conceptname>PolymorphicFunctionObject</conceptname> that strips references and <computeroutput>boost::reference_wrapper&lt;&gt;</computeroutput> from its argument. </purpose> <description> <para> Example: <programlisting><classname>proto::terminal</classname>&lt;int&gt;::type i = {42}; int j = 67; int k = <classname>proto::when</classname>&lt;<classname>proto::_</classname>, proto::_byval(<classname>proto::_state</classname>)&gt;()(i, boost::ref(j)); assert( 67 == k );</programlisting> </para> </description> <struct-specialization name="result"> <template> <template-type-parameter name="This"/> <template-type-parameter name="T"/> </template> <specialization> <template-arg>This(boost::reference_wrapper&lt; T &gt;)</template-arg> </specialization> <inherit>result&lt;This(T)&gt;</inherit> </struct-specialization> <struct-specialization name="result"> <template> <template-type-parameter name="This"/> <template-type-parameter name="T"/> </template> <specialization> <template-arg>This(T &amp;)</template-arg> </specialization> <inherit>result&lt;This(T)&gt;</inherit> </struct-specialization> <struct-specialization name="result"> <template> <template-type-parameter name="This"/> <template-type-parameter name="T"/> </template> <specialization> <template-arg>This(T)</template-arg> </specialization> <typedef name="type"> <type>T</type> </typedef> </struct-specialization> <method-group name="public member functions"> <method name="operator()" cv="const"> <type>T</type> <template> <template-type-parameter name="T"/> </template> <parameter name="t"> <paramtype>T const &amp;</paramtype> <description> <para>The object to unref </para> </description> </parameter> <returns> <para> <computeroutput>t</computeroutput> </para> </returns> <throws> <simpara>Will not throw.</simpara> </throws> </method> <method name="operator()" cv="const"> <type>T</type> <template> <template-type-parameter name="T"/> </template> <parameter name="t"> <paramtype>boost::reference_wrapper&lt; T &gt; const &amp;</paramtype> </parameter> <description> <para>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. </para> </description> </method> </method-group> </struct> </namespace> </namespace> </header>