139 lines
5.4 KiB
XML
139 lines
5.4 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/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>
|