<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Get the Iterator pointing to the Begin of a Container Attribute</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
<link rel="home" href="../../../../index.html" title="Spirit 2.4.1">
<link rel="up" href="../iterate.html" title="Extract Attribute Values to Generate Output from a Container (Karma)">
<link rel="prev" href="container_iterator.html" title="Determine the Type of the Iterator of a Container (Karma)">
<link rel="next" href="end_container.html" title="Get the Iterator pointing to the End of a Container Attribute">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="container_iterator.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../iterate.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="end_container.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="spirit.advanced.customize.iterate.begin_container"></a><a class="link" href="begin_container.html" title="Get the Iterator pointing to the Begin of a Container Attribute">Get
          the Iterator pointing to the Begin of a Container Attribute</a>
</h5></div></div></div>
<a name="spirit.advanced.customize.iterate.begin_container.begin_container"></a><h6>
<a name="id1181798"></a>
            <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.begin_container">begin_container</a>
          </h6>
<p>
            The template <code class="computeroutput"><span class="identifier">begin_container</span></code>
            is a type used as an attribute customization point. It is invoked by
            the <span class="emphasis"><em>Karma</em></span> repetitive generators (such as <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List
            (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene
            (unary <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/plus.html" title="Plus (+a)">Plus (unary <code class="computeroutput"><span class="special">+</span></code>)</a>, and <a class="link" href="../../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>)
            in order to get an iterator pointing to the first element of the container
            holding the attributes to generate output from.
          </p>
<a name="spirit.advanced.customize.iterate.begin_container.module_headers"></a><h6>
<a name="id1181867"></a>
            <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.module_headers">Module
            Headers</a>
          </h6>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">home</span><span class="special">/</span><span class="identifier">support</span><span class="special">/</span><span class="identifier">container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<p>
            Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
          </p>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td align="left" valign="top"><p>
              This header file does not need to be included directly by any user
              program as it is normally included by other Spirit header files relying
              on its content.
            </p></td></tr>
</table></div>
<a name="spirit.advanced.customize.iterate.begin_container.namespace"></a><h6>
<a name="id1181954"></a>
            <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.namespace">Namespace</a>
          </h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
<thead><tr><th>
                    <p>
                      Name
                    </p>
                  </th></tr></thead>
<tbody><tr><td>
                    <p>
                      <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></code>
                    </p>
                  </td></tr></tbody>
</table></div>
<a name="spirit.advanced.customize.iterate.begin_container.synopsis"></a><h6>
<a name="id1182032"></a>
            <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.synopsis">Synopsis</a>
          </h6>
<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">&gt;</span>
<span class="keyword">struct</span> <span class="identifier">begin_container</span>
<span class="special">{</span>
    <span class="keyword">static</span> <span class="keyword">typename</span> <span class="identifier">container_iterator</span><span class="special">&lt;</span><span class="identifier">Container</span><span class="special">&gt;::</span><span class="identifier">type</span> 
    <span class="identifier">call</span><span class="special">(</span><span class="identifier">Container</span><span class="special">&amp;</span> <span class="identifier">c</span><span class="special">);</span>
<span class="special">};</span>
</pre>
<a name="spirit.advanced.customize.iterate.begin_container.template_parameters"></a><h6>
<a name="id1182158"></a>
            <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.template_parameters">Template
            parameters</a>
          </h6>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                    <p>
                      Parameter
                    </p>
                  </th>
<th>
                    <p>
                      Description
                    </p>
                  </th>
<th>
                    <p>
                      Default
                    </p>
                  </th>
</tr></thead>
<tbody>
<tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">Container</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      The type, <code class="computeroutput"><span class="identifier">Container</span></code>
                      for which the iterator pointing to the first element has to
                      be returned
                    </p>
                  </td>
<td>
                    <p>
                      none
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">Enable</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      Helper template parameter usable to selectively enable or disable
                      certain specializations of <code class="computeroutput"><span class="identifier">begin_container</span></code>
                      utilizing SFINAE (i.e. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></code>
                      or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></code>).
                    </p>
                  </td>
<td>
                    <p>
                      <code class="computeroutput"><span class="keyword">void</span></code>
                    </p>
                  </td>
</tr>
</tbody>
</table></div>
<a name="spirit.advanced.customize.iterate.begin_container.notation"></a><h6>
<a name="id1184516"></a>
            <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.notation">Notation</a>
          </h6>
<div class="variablelist">
<p class="title"><b></b></p>
<dl>
<dt><span class="term"><code class="computeroutput"><span class="identifier">C</span></code></span></dt>
<dd><p>
                  A container type the begin iterator needs to be returned for.
                </p></dd>
<dt><span class="term"><code class="computeroutput"><span class="identifier">c</span></code></span></dt>
<dd><p>
                  An instance of a container, <code class="computeroutput"><span class="identifier">C</span></code>.
                </p></dd>
</dl>
</div>
<a name="spirit.advanced.customize.iterate.begin_container.expression_semantics"></a><h6>
<a name="id1184583"></a>
            <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.expression_semantics">Expression
            Semantics</a>
          </h6>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                    <p>
                      Expression
                    </p>
                  </th>
<th>
                    <p>
                      Semantics
                    </p>
                  </th>
</tr></thead>
<tbody><tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">begin_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      Return the iterator usable to dereference the first element
                      of the given container, <code class="computeroutput"><span class="identifier">c</span></code>.
                      The type of the returned iterator is expected to be the same
                      as the type returned by the customization point <a class="link" href="container_iterator.html" title="Determine the Type of the Iterator of a Container (Karma)"><code class="computeroutput"><span class="identifier">container_iterator</span></code></a>.
                    </p>
                  </td>
</tr></tbody>
</table></div>
<p>
            The returned instance conceptually needs to be equivalent to a standard
            forward iterator. But it does not have to expose the standardized interface.
            If this customization point is implemented for a certain container type,
            all related customization points need to be implemented as well (see
            <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.related_attribute_customization_points">Related
            Attribute Customization Points</a> below). This encapsulates the specific
            iterator interface required for a given type. The minimal requirements
            for a type to be exposed as an iterator in this context are:
          </p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
                it needs to be comparable for equality (see <a class="link" href="compare_iterators.html" title="Compare two Iterator pointing into a Container Attribute for Equality"><code class="computeroutput"><span class="identifier">compare_iterators</span></code></a>),
              </li>
<li class="listitem">
                it needs to be incrementable (see <a class="link" href="next_iterator.html" title="Increment the Iterator pointing into a Container Attribute"><code class="computeroutput"><span class="identifier">next_iterator</span></code></a>),
              </li>
<li class="listitem">
                it needs to be dereferencible (see <a class="link" href="deref_iterator.html" title="Dereference the Iterator pointing into a Container Attribute"><code class="computeroutput"><span class="identifier">deref_iterator</span></code></a>).
              </li>
</ul></div>
<a name="spirit.advanced.customize.iterate.begin_container.predefined_specializations"></a><h6>
<a name="id1184762"></a>
            <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.predefined_specializations">Predefined
            Specializations</a>
          </h6>
<p>
            <a href="http://boost-spirit.com" target="_top">Spirit</a> predefines specializations
            of this customization point for several types. The following table lists
            those types together with the types returned by the embedded typedef
            <code class="computeroutput"><span class="identifier">type</span></code>:
          </p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                    <p>
                      Template Parameters
                    </p>
                  </th>
<th>
                    <p>
                      Value
                    </p>
                  </th>
</tr></thead>
<tbody>
<tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">C</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      Returns <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span></code>.
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">C</span> <span class="keyword">const</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      Returns <code class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span></code>.
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      <code class="computeroutput"><span class="identifier">unused_type</span></code>
                    </p>
                  </td>
<td>
                    <p>
                      Returns <code class="computeroutput"><span class="special">&amp;</span><span class="identifier">unused</span></code>.
                    </p>
                  </td>
</tr>
</tbody>
</table></div>
<a name="spirit.advanced.customize.iterate.begin_container.when_to_implement"></a><h6>
<a name="id1184954"></a>
            <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.when_to_implement">When
            to implement</a>
          </h6>
<p>
            The customization point <code class="computeroutput"><span class="identifier">begin_container</span></code>
            needs to be implemented for a specific type whenever this type is to
            be used as an attribute in place of a STL container. It is applicable
            for generators (<span class="emphasis"><em>Spirit.Karma</em></span>) only. As a rule of
            thumb: it has to be implemented whenever a certain type is to be passed
            as an attribute to a generator normally exposing a STL container, <code class="computeroutput"><span class="identifier">C</span></code> and if the type does not expose the
            interface of a STL container (i.e. <code class="computeroutput"><span class="identifier">is_container</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
            would normally return <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>).
          </p>
<a name="spirit.advanced.customize.iterate.begin_container.related_attribute_customization_points"></a><h6>
<a name="id1185025"></a>
            <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.related_attribute_customization_points">Related
            Attribute Customization Points</a>
          </h6>
<p>
            If this customization point is implemented, the following other customization
            points might need to be implemented as well.
          </p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                    <p>
                      Name
                    </p>
                  </th>
<th>
                    <p>
                      When to implement
                    </p>
                  </th>
</tr></thead>
<tbody>
<tr>
<td>
                    <p>
                      <a class="link" href="../is_container.html" title="Determine if a Type Should be Treated as a Container (Qi and Karma)"><code class="computeroutput"><span class="identifier">is_container</span></code></a>
                    </p>
                  </td>
<td>
                    <p>
                      Needs to be implemented whenever a type is to be used as a
                      container attribute in <span class="emphasis"><em>Karma</em></span>.
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      <a class="link" href="container_iterator.html" title="Determine the Type of the Iterator of a Container (Karma)"><code class="computeroutput"><span class="identifier">container_iterator</span></code></a>
                    </p>
                  </td>
<td>
                    <p>
                      Karma: <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List
                      (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene (unary
                      <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/plus.html" title="Plus (+a)">Plus (unary
                      <code class="computeroutput"><span class="special">+</span></code>)</a>, <a class="link" href="../../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>.
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      <a class="link" href="begin_container.html" title="Get the Iterator pointing to the Begin of a Container Attribute"><code class="computeroutput"><span class="identifier">begin_container</span></code></a>
                    </p>
                  </td>
<td>
                    <p>
                      Karma: <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List
                      (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene (unary
                      <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/plus.html" title="Plus (+a)">Plus (unary
                      <code class="computeroutput"><span class="special">+</span></code>)</a>, <a class="link" href="../../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>.
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      <a class="link" href="end_container.html" title="Get the Iterator pointing to the End of a Container Attribute"><code class="computeroutput"><span class="identifier">end_container</span></code></a>
                    </p>
                  </td>
<td>
                    <p>
                      Karma: <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List
                      (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene (unary
                      <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/plus.html" title="Plus (+a)">Plus (unary
                      <code class="computeroutput"><span class="special">+</span></code>)</a>, <a class="link" href="../../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>.
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      <a class="link" href="deref_iterator.html" title="Dereference the Iterator pointing into a Container Attribute"><code class="computeroutput"><span class="identifier">deref_iterator</span></code></a>
                    </p>
                  </td>
<td>
                    <p>
                      Karma: <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List
                      (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene (unary
                      <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/plus.html" title="Plus (+a)">Plus (unary
                      <code class="computeroutput"><span class="special">+</span></code>)</a>, <a class="link" href="../../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>.
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      <a class="link" href="next_iterator.html" title="Increment the Iterator pointing into a Container Attribute"><code class="computeroutput"><span class="identifier">next_iterator</span></code></a>
                    </p>
                  </td>
<td>
                    <p>
                      Karma: <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List
                      (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene (unary
                      <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/plus.html" title="Plus (+a)">Plus (unary
                      <code class="computeroutput"><span class="special">+</span></code>)</a>, <a class="link" href="../../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>.
                    </p>
                  </td>
</tr>
<tr>
<td>
                    <p>
                      <a class="link" href="compare_iterators.html" title="Compare two Iterator pointing into a Container Attribute for Equality"><code class="computeroutput"><span class="identifier">compare_iterators</span></code></a>
                    </p>
                  </td>
<td>
                    <p>
                      Karma: <a class="link" href="../../../karma/reference/operator/list.html" title="Lists (a % b)">List
                      (<code class="computeroutput"><span class="special">%</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/kleene.html" title="Kleene Star (*a)">Kleene (unary
                      <code class="computeroutput"><span class="special">*</span></code>)</a>, <a class="link" href="../../../karma/reference/operator/plus.html" title="Plus (+a)">Plus (unary
                      <code class="computeroutput"><span class="special">+</span></code>)</a>, <a class="link" href="../../../karma/reference/directive/repeat.html" title="Repetition Directive (repeat[])">Repeat</a>.
                    </p>
                  </td>
</tr>
</tbody>
</table></div>
<a name="spirit.advanced.customize.iterate.begin_container.example"></a><h6>
<a name="id1185522"></a>
            <a class="link" href="begin_container.html#spirit.advanced.customize.iterate.begin_container.example">Example</a>
          </h6>
<p>
            For examples of how to use the customization point <code class="computeroutput"><span class="identifier">begin_container</span></code>
            please see here: <a class="link" href="container_iterator.html#spirit.advanced.customize.iterate.container_iterator.example">embedded_container_example</a>,
            <a class="link" href="next_iterator.html#spirit.advanced.customize.iterate.next_iterator.example">use_as_container</a>,
            and <a class="link" href="deref_iterator.html#spirit.advanced.customize.iterate.deref_iterator.example">counter_example</a>.
          </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2001-2010 Joel de Guzman, Hartmut Kaiser<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="container_iterator.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../iterate.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="end_container.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
