| <?xml version="1.0" encoding="utf-8"?> |
| <header name="boost/proto/literal.hpp"> |
| <para> |
| The |
| <computeroutput><classname alt="boost::proto::literal">proto::literal<></classname></computeroutput> |
| terminal wrapper, and the |
| <computeroutput><functionname alt="boost::proto::lit">proto::lit()</functionname></computeroutput> |
| function for creating |
| <computeroutput><classname alt="boost::proto::literal">proto::literal<></classname></computeroutput> |
| wrappers. |
| </para> |
| <namespace name="boost"> |
| <namespace name="proto"> |
| <struct name="literal"> |
| <template> |
| <template-type-parameter name="T"/> |
| <template-type-parameter name="Domain"> |
| <default><classname>proto::default_domain</classname></default> |
| </template-type-parameter> |
| </template> |
| <inherit> |
| <type> |
| <classname>proto::extends</classname><<classname>proto::basic_expr</classname><<classname>proto::tag::terminal</classname>, <classname>proto::term</classname>< T > >, proto::literal<T, Domain>, Domain></type> |
| </inherit> |
| <purpose>A simple wrapper for a terminal, provided for ease of use.</purpose> |
| <description> |
| <para> |
| A simple wrapper for a terminal, provided for ease of use. In all cases, |
| <computeroutput>proto::literal<X> l(x);</computeroutput> is equivalent to |
| <computeroutput><classname>proto::terminal</classname><X>::type l = {x};</computeroutput>. |
| </para> |
| <para> |
| The <computeroutput>Domain</computeroutput> template parameter defaults to |
| <computeroutput><classname>proto::default_domain</classname></computeroutput>. |
| </para> |
| </description> |
| <typedef name="X"> |
| <purpose>For exposition only</purpose> |
| <type><classname>proto::basic_expr</classname><<classname>proto::tag::terminal</classname>, <classname>proto::term</classname>< T > ></type> |
| </typedef> |
| <typedef name="value_type"> |
| <type>typename <classname>proto::result_of::value</classname><X>::type</type> |
| </typedef> |
| <typedef name="reference"> |
| <type>typename <classname>proto::result_of::value</classname><X &>::type</type> |
| </typedef> |
| <typedef name="const_reference"> |
| <type>typename <classname>proto::result_of::value</classname><X const &>::type</type> |
| </typedef> |
| <method-group name="public member functions"> |
| <method name="get"> |
| <type>reference</type> |
| <returns> |
| <computeroutput><functionname>proto::value</functionname>(*this)</computeroutput> |
| </returns> |
| </method> |
| <method name="get" cv="const"> |
| <type>const_reference</type> |
| <returns> |
| <computeroutput><functionname>proto::value</functionname>(*this)</computeroutput> |
| </returns> |
| </method> |
| </method-group> |
| <constructor/> |
| <constructor> |
| <template> |
| <template-type-parameter name="U"/> |
| </template> |
| <parameter name="u"> |
| <paramtype>U &</paramtype> |
| </parameter> |
| </constructor> |
| <constructor> |
| <template> |
| <template-type-parameter name="U"/> |
| </template> |
| <parameter name="u"> |
| <paramtype>U const &</paramtype> |
| </parameter> |
| </constructor> |
| <constructor> |
| <template> |
| <template-type-parameter name="U"/> |
| </template> |
| <parameter name="u"> |
| <paramtype><classname>proto::literal</classname>< U, Domain > const &</paramtype> |
| </parameter> |
| </constructor> |
| </struct> |
| |
| <!-- proto::lit() --> |
| <overloaded-function name="lit"> |
| <signature> |
| <type><classname>proto::literal</classname>< T & > const</type> |
| <template> |
| <template-type-parameter name="T"/> |
| </template> |
| <parameter name="t"> |
| <paramtype>T &</paramtype> |
| <description> |
| <para>The object to wrap.</para> |
| </description> |
| </parameter> |
| </signature> |
| <signature> |
| <type><classname>proto::literal</classname>< T const & > const</type> |
| <template> |
| <template-type-parameter name="T"/> |
| </template> |
| <parameter name="t"> |
| <paramtype>T const &</paramtype> |
| </parameter> |
| </signature> |
| <purpose>A helper function for creating a <computeroutput> |
| <classname alt="proto::literal">proto::literal<></classname></computeroutput> wrapper. |
| </purpose> |
| <returns> |
| <para> |
| <computeroutput><classname>proto::literal</classname><T &>(t)</computeroutput> |
| </para> |
| </returns> |
| <throws> |
| <simpara>Will not throw.</simpara> |
| </throws> |
| <notes> |
| <para>The returned value holds the argument by reference. </para> |
| </notes> |
| </overloaded-function> |
| </namespace> |
| </namespace> |
| </header> |