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_IS_VIEW_03202006_0015)
8
#define FUSION_IS_VIEW_03202006_0015
10
#include <boost/fusion/support/detail/is_view.hpp>
11
#include <boost/fusion/support/tag_of.hpp>
13
namespace boost { namespace fusion
16
struct sequence_facade_tag;
17
struct boost_tuple_tag; // boost::tuples::tuple tag
18
struct array_tag; // boost::array tag
19
struct mpl_sequence_tag; // mpl sequence tag
20
struct std_pair_tag; // std::pair tag
24
template<typename Tag>
29
: detail::fusion_is_view<T>
34
struct is_view_impl<sequence_facade_tag>
36
template <typename Sequence>
37
struct apply : Sequence::is_view {};
41
struct is_view_impl<boost_tuple_tag>;
44
struct is_view_impl<array_tag>;
47
struct is_view_impl<mpl_sequence_tag>;
50
struct is_view_impl<std_pair_tag>;
57
extension::is_view_impl<typename fusion::detail::tag_of<T>::type>::
58
template apply<T>::type