1 /*============================================================================= 2 Copyright (c) 2013 Mateusz Loskot 3 Copyright (c) 2001-2011 Joel de Guzman 4 Copyright (c) 2005-2006 Dan Marsden 5 6 Distributed under the Boost 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 #if !defined(BOOST_FUSION_STD_ARRAY_BEGIN_OF_IMPL_01062013_1700) 10 #define BOOST_FUSION_STD_ARRAY_BEGIN_OF_IMPL_01062013_1700 11 12 #include <boost/fusion/adapted/std_array/std_array_iterator.hpp> 13 14 namespace boost { namespace fusion { 15 16 struct std_array_tag; 17 18 namespace extension 19 { 20 template<typename T> 21 struct begin_impl; 22 23 template <> 24 struct begin_impl<std_array_tag> 25 { 26 template <typename Sequence> 27 struct apply 28 { 29 typedef std_array_iterator<Sequence, 0> type; 30 31 static type callboost::fusion::extension::begin_impl::apply32 call(Sequence& v) 33 { 34 return type(v); 35 } 36 }; 37 }; 38 } 39 }} 40 41 #endif 42