• 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/pop_front.hpp">
10  <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::pop_front</classname></computeroutput>.</para>
11
12  <namespace name="boost">
13    <namespace name="proto">
14      <namespace name="functional">
15
16        <!-- proto::functional::pop_front -->
17        <struct name="pop_front">
18          <purpose>A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the
19            <computeroutput>fusion::pop_front()</computeroutput> algorithm on its argument.</purpose>
20          <description>
21            <para>
22              A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the
23              <computeroutput>fusion::pop_front()</computeroutput> algorithm on its argument. This is
24              useful for defining a <conceptname>CallableTransform</conceptname> such as
25              <computeroutput>pop_front(_)</computeroutput>, which removes the first child from a Proto
26              expression node. Such a transform might be used as the first argument to the
27              <computeroutput><classname alt="proto::fold">proto::fold&lt;&gt;</classname></computeroutput>
28              transform; that is, fold all but the first child.
29            </para>
30          </description>
31          <inherit>
32            <type><classname>proto::callable</classname></type>
33          </inherit>
34          <struct-specialization name="result">
35            <template>
36              <template-type-parameter name="This"/>
37              <template-type-parameter name="Seq"/>
38            </template>
39            <specialization>
40              <template-arg>This(Seq)</template-arg>
41            </specialization>
42            <inherit>
43              <type>result&lt; This(Seq const &amp;) &gt;</type>
44            </inherit>
45          </struct-specialization>
46          <struct-specialization name="result">
47            <template>
48              <template-type-parameter name="This"/>
49              <template-type-parameter name="Seq"/>
50            </template>
51            <specialization>
52              <template-arg>This(Seq &amp;)</template-arg>
53            </specialization>
54            <inherit>
55              <type>fusion::result_of::pop_front&lt; Seq &gt;</type>
56            </inherit>
57          </struct-specialization>
58          <method-group name="public member functions">
59            <method name="operator()" cv="const">
60              <type>typename fusion::result_of::pop_front&lt; Seq &gt;::type</type>
61              <template>
62                <template-type-parameter name="Seq"/>
63              </template>
64              <parameter name="seq">
65                <paramtype>Seq &amp;</paramtype>
66              </parameter>
67              <returns>
68                <para><computeroutput>fusion::pop_front(seq)</computeroutput></para>
69              </returns>
70            </method>
71            <method name="operator()" cv="const">
72              <type>typename fusion::result_of::pop_front&lt; Seq const &gt;::type</type>
73              <template>
74                <template-type-parameter name="Seq"/>
75              </template>
76              <parameter name="seq">
77                <paramtype>Seq const &amp;</paramtype>
78              </parameter>
79              <returns>
80                <para><computeroutput>fusion::pop_front(seq)</computeroutput></para>
81              </returns>
82            </method>
83          </method-group>
84        </struct>
85
86      </namespace>
87    </namespace>
88  </namespace>
89</header>
90