123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- <?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/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>
|