1 /*=============================================================================
2 Copyright (c) 2001-2006 Joel de Guzman
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 ==============================================================================*/
7 #if !defined(FUSION_BEGIN_IMPL_05222005_1108)
8 #define FUSION_BEGIN_IMPL_05222005_1108
10 #include <boost/fusion/sequence/intrinsic/begin.hpp>
11 #include <boost/type_traits/is_const.hpp>
12 #include <boost/mpl/eval_if.hpp>
13 #include <boost/mpl/identity.hpp>
15 namespace boost
{ namespace fusion
21 template <typename Tag
>
25 struct begin_impl
<map_tag
>
27 template <typename Sequence
>
31 result_of::begin
<typename
Sequence::storage_type
>::type
35 result_of::begin
<typename
Sequence::storage_type
const>::type
41 , mpl::identity
<const_iterator_type
>
42 , mpl::identity
<iterator_type
>
49 return fusion::begin(m
.get_data());