Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
1 //-----------------------------------------------------------------------------
2 // boost variant/detail/over_sequence.hpp header file
3 // See http://www.boost.org for updates, documentation, and revision history.
4 //-----------------------------------------------------------------------------
9 // Portions Copyright (C) 2002 David Abrahams
11 // Distributed under the Boost Software License, Version 1.0. (See
12 // accompanying file LICENSE_1_0.txt or copy at
13 // http://www.boost.org/LICENSE_1_0.txt)
15 #ifndef BOOST_VARIANT_DETAIL_OVER_SEQUENCE_HPP
16 #define BOOST_VARIANT_DETAIL_OVER_SEQUENCE_HPP
18 #include "boost/mpl/aux_/config/ctps.hpp"
19 #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
20 # include "boost/mpl/eval_if.hpp"
21 # include "boost/mpl/bool.hpp"
22 # include "boost/mpl/identity.hpp"
23 # include "boost/type.hpp"
28 namespace detail { namespace variant {
30 ///////////////////////////////////////////////////////////////////////////////
31 // (detail) class over_sequence
33 // Wrapper used to indicate bounded types for variant are from type sequence.
35 template <typename Types>
41 ///////////////////////////////////////////////////////////////////////////////
42 // (detail) metafunction is_over_sequence (modeled on code by David Abrahams)
44 // Indicates whether the specified type is of form over_sequence<...> or not.
47 #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
50 struct is_over_sequence
55 template <typename Types>
56 struct is_over_sequence< over_sequence<Types> >
61 #else // defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
63 typedef char (&yes_over_sequence_t)[1];
64 typedef char (&no_over_sequence_t)[2];
66 no_over_sequence_t is_over_sequence_test(...);
69 yes_over_sequence_t is_over_sequence_test(
70 type< ::boost::detail::variant::over_sequence<T> >
74 struct is_over_sequence_impl
76 BOOST_STATIC_CONSTANT(bool, value = (
77 sizeof(is_over_sequence_test(type<T>()))
78 == sizeof(yes_over_sequence_t)
83 struct is_over_sequence
85 ::boost::detail::variant::is_over_sequence_impl<T>::value
90 #endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION workaround
92 }} // namespace detail::variant
95 #endif // BOOST_VARIANT_DETAIL_OVER_SEQUENCE_HPP