1 /*=============================================================================
2 Copyright (c) 2010 Christopher Schmidt
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 ==============================================================================*/
8 #ifndef BOOST_FUSION_ADAPTED_ARRAY_TAG_OF_HPP
9 #define BOOST_FUSION_ADAPTED_ARRAY_TAG_OF_HPP
11 #include <boost/fusion/support/config.hpp>
12 #include <boost/fusion/support/tag_of_fwd.hpp>
20 struct po_array_iterator_tag;
21 struct random_access_traversal_tag;
22 struct fusion_sequence_tag;
26 #ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
27 template<typename T, std::size_t N>
28 struct tag_of<T[N], void>
30 typedef po_array_tag type;
33 template<typename T, std::size_t N>
34 struct tag_of<T const[N], void>
36 typedef po_array_tag type;
39 template<typename T, std::size_t N>
40 struct tag_of<T[N], void>
42 typedef po_array_tag type;
45 template<typename T, std::size_t N>
46 struct tag_of<T const[N], void>
48 typedef po_array_tag type;
59 template<typename T, std::size_t N>
60 struct sequence_tag<T[N]>
62 typedef fusion::po_array_tag type;
65 template<typename T, std::size_t N>
66 struct sequence_tag<T const[N] >
68 typedef fusion::po_array_tag type;