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/range/size.hpp">
10  <para>Includes Proto callable <code><classname>boost::proto::functional::size</classname></code>.</para>
11
12  <namespace name="boost">
13    <namespace name="proto">
14      <namespace name="functional">
15
16        <!-- proto::functional::size -->
17        <struct name="size">
18          <purpose>A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the
19            <code>boost::size()</code> function on its arguments.</purpose>
20          <description>
21            <para>
22              A <conceptname>PolymorphicFunctionObject</conceptname> type that invokes the
23              <code>boost::size()</code> function on its arguments.</para>
24          </description>
25          <inherit>
26            <type><classname>proto::callable</classname></type>
27          </inherit>
28          <struct-specialization name="result">
29            <template>
30              <template-type-parameter name="This"/>
31              <template-type-parameter name="Range"/>
32            </template>
33            <specialization>
34              <template-arg>This(Range)</template-arg>
35            </specialization>
36            <inherit>
37              <type>boost::range_size&lt;
38      typename boost::remove_reference&lt;Range&gt;::type
39  &gt;</type>
40            </inherit>
41          </struct-specialization>
42          <method-group name="public member functions">
43            <method name="operator()" cv="const">
44              <type>typename boost::range_size&lt; Range const &gt;::type</type>
45              <template>
46                <template-type-parameter name="Range"/>
47              </template>
48              <parameter name="rng">
49                <paramtype>Range const &amp;</paramtype>
50              </parameter>
51              <returns>
52                <para><code>boost::size(rng)</code></para>
53              </returns>
54            </method>
55          </method-group>
56        </struct>
57
58      </namespace>
59    </namespace>
60  </namespace>
61</header>
62