• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="utf-8"?>
2<!--
3  Copyright 2012 Eric Niebler
4
5  Distributed under the Boost
6  Software License, Version 1.0. (See accompanying
7  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8  -->
9<header name="boost/proto/functional/fusion/reverse.hpp">
10  <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::reverse</classname></computeroutput>.</para>
11
12  <namespace name="boost">
13    <namespace name="proto">
14      <namespace name="functional">
15
16        <!-- proto::functional::reverse -->
17        <struct name="reverse">
18          <purpose>A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the
19            <computeroutput>fusion::reverse()</computeroutput> algorithm on its argument.
20          </purpose>
21          <description>
22            <para>
23              A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the
24              <computeroutput>fusion::reverse()</computeroutput> algorithm on its argument. This is
25              useful for defining a <conceptname>CallableTransform</conceptname> like
26              <computeroutput>reverse(_)</computeroutput>, which reverses the order of the children
27              of a Proto expression node.
28            </para>
29          </description>
30          <inherit>
31            <type><classname>proto::callable</classname></type>
32          </inherit>
33          <struct-specialization name="result">
34            <template>
35              <template-type-parameter name="This"/>
36              <template-type-parameter name="Seq"/>
37            </template>
38            <specialization>
39              <template-arg>This(Seq)</template-arg>
40            </specialization>
41            <inherit>
42              <type>result&lt; This(Seq const &amp;) &gt;</type>
43            </inherit>
44          </struct-specialization>
45          <struct-specialization name="result">
46            <template>
47              <template-type-parameter name="This"/>
48              <template-type-parameter name="Seq"/>
49            </template>
50            <specialization>
51              <template-arg>This(Seq &amp;)</template-arg>
52            </specialization>
53            <inherit>
54              <type>fusion::result_of::reverse&lt; Seq &gt;</type>
55            </inherit>
56          </struct-specialization>
57          <method-group name="public member functions">
58            <method name="operator()" cv="const">
59              <type>typename fusion::result_of::reverse&lt; Seq &gt;::type</type>
60              <template>
61                <template-type-parameter name="Seq"/>
62              </template>
63              <parameter name="seq">
64                <paramtype>Seq &amp;</paramtype>
65              </parameter>
66              <returns>
67                <para><computeroutput>fusion::reverse(seq)</computeroutput></para>
68              </returns>
69            </method>
70            <method name="operator()" cv="const">
71              <type>typename fusion::result_of::reverse&lt; Seq const &gt;::type</type>
72              <template>
73                <template-type-parameter name="Seq"/>
74              </template>
75              <parameter name="seq">
76                <paramtype>Seq const &amp;</paramtype>
77              </parameter>
78              <returns>
79                <para><computeroutput>fusion::reverse(seq)</computeroutput></para>
80              </returns>
81            </method>
82          </method-group>
83        </struct>
84
85      </namespace>
86    </namespace>
87  </namespace>
88</header>
89