annotate DEPENDENCIES/generic/include/boost/fusion/container/deque/detail/cpp03/deque.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents c530137014c0
children
rev   line source
Chris@16 1 /*=============================================================================
Chris@16 2 Copyright (c) 2005-2012 Joel de Guzman
Chris@16 3 Copyright (c) 2005-2006 Dan Marsden
Chris@16 4
Chris@16 5 Distributed under the Boost Software License, Version 1.0. (See accompanying
Chris@16 6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 7 ==============================================================================*/
Chris@16 8 #if !defined(BOOST_PP_FUSION_DEQUE_26112006_1649)
Chris@16 9 #define BOOST_PP_FUSION_DEQUE_26112006_1649
Chris@16 10
Chris@16 11 #if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE)
Chris@16 12 #error "C++03 only! This file should not have been included"
Chris@16 13 #endif
Chris@16 14
Chris@16 15 #include <boost/fusion/container/deque/detail/cpp03/limits.hpp>
Chris@16 16 #include <boost/fusion/container/deque/front_extended_deque.hpp>
Chris@16 17 #include <boost/fusion/container/deque/back_extended_deque.hpp>
Chris@16 18 #include <boost/fusion/container/deque/detail/cpp03/deque_keyed_values.hpp>
Chris@16 19 #include <boost/fusion/container/deque/detail/cpp03/deque_initial_size.hpp>
Chris@16 20 #include <boost/fusion/support/sequence_base.hpp>
Chris@101 21 #include <boost/fusion/support/detail/access.hpp>
Chris@16 22 #include <boost/fusion/container/deque/detail/keyed_element.hpp>
Chris@16 23 #include <boost/preprocessor/repetition/enum_params.hpp>
Chris@16 24 #include <boost/preprocessor/repetition/enum_binary_params.hpp>
Chris@16 25 #include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
Chris@16 26 #include <boost/type_traits/is_convertible.hpp>
Chris@16 27
Chris@16 28 #include <boost/fusion/container/deque/deque_fwd.hpp>
Chris@16 29 #include <boost/fusion/container/deque/detail/value_at_impl.hpp>
Chris@16 30 #include <boost/fusion/container/deque/detail/at_impl.hpp>
Chris@16 31 #include <boost/fusion/container/deque/detail/begin_impl.hpp>
Chris@16 32 #include <boost/fusion/container/deque/detail/end_impl.hpp>
Chris@16 33 #include <boost/fusion/container/deque/detail/is_sequence_impl.hpp>
Chris@16 34 #include <boost/fusion/sequence/intrinsic/begin.hpp>
Chris@16 35 #include <boost/mpl/bool.hpp>
Chris@16 36
Chris@16 37 #include <boost/fusion/support/void.hpp>
Chris@16 38 #include <boost/utility/enable_if.hpp>
Chris@16 39
Chris@16 40 #if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES)
Chris@16 41 #include <boost/fusion/container/deque/detail/cpp03/preprocessed/deque.hpp>
Chris@16 42 #else
Chris@16 43 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
Chris@16 44 #pragma wave option(preserve: 2, line: 0, output: "preprocessed/deque" FUSION_MAX_DEQUE_SIZE_STR ".hpp")
Chris@16 45 #endif
Chris@16 46
Chris@16 47 /*=============================================================================
Chris@16 48 Copyright (c) 2001-2011 Joel de Guzman
Chris@16 49
Chris@16 50 Distributed under the Boost Software License, Version 1.0. (See accompanying
Chris@16 51 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 52
Chris@16 53 This is an auto-generated file. Do not edit!
Chris@16 54 ==============================================================================*/
Chris@16 55
Chris@16 56 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
Chris@16 57 #pragma wave option(preserve: 1)
Chris@16 58 #endif
Chris@16 59
Chris@101 60 #define FUSION_HASH #
Chris@101 61
Chris@16 62 namespace boost { namespace fusion {
Chris@16 63
Chris@16 64 struct deque_tag;
Chris@16 65
Chris@16 66 template<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, typename T)>
Chris@16 67 struct deque
Chris@16 68 :
Chris@16 69 detail::deque_keyed_values<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, T)>::type,
Chris@16 70 sequence_base<deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, T)> >
Chris@16 71 {
Chris@16 72 typedef deque_tag fusion_tag;
Chris@16 73 typedef bidirectional_traversal_tag category;
Chris@16 74 typedef typename detail::deque_keyed_values<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, T)>::type base;
Chris@16 75 typedef typename detail::deque_initial_size<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, T)>::type size;
Chris@16 76 typedef mpl::int_<size::value> next_up;
Chris@101 77 typedef mpl::int_<-1> next_down;
Chris@16 78 typedef mpl::false_ is_view;
Chris@16 79
Chris@16 80 #include <boost/fusion/container/deque/detail/cpp03/deque_forward_ctor.hpp>
Chris@16 81
Chris@101 82 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@16 83 deque()
Chris@16 84 {}
Chris@16 85
Chris@101 86 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@101 87 explicit deque(typename detail::call_param<T0>::type t0)
Chris@16 88 : base(t0, detail::nil_keyed_element())
Chris@16 89 {}
Chris@16 90
Chris@101 91 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@16 92 explicit deque(deque const& rhs)
Chris@16 93 : base(rhs)
Chris@16 94 {}
Chris@16 95
Chris@16 96 template<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, typename U)>
Chris@101 97 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@16 98 deque(deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)> const& seq)
Chris@16 99 : base(seq)
Chris@16 100 {}
Chris@16 101
Chris@16 102 template<typename Sequence>
Chris@101 103 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@16 104 deque(Sequence const& seq, typename disable_if<is_convertible<Sequence, T0> >::type* /*dummy*/ = 0)
Chris@16 105 : base(base::from_iterator(fusion::begin(seq)))
Chris@16 106 {}
Chris@16 107
Chris@16 108 template <BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, typename U)>
Chris@101 109 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@16 110 deque&
Chris@16 111 operator=(deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)> const& rhs)
Chris@16 112 {
Chris@16 113 base::operator=(rhs);
Chris@16 114 return *this;
Chris@16 115 }
Chris@16 116
Chris@16 117 template <typename T>
Chris@101 118 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@16 119 deque&
Chris@16 120 operator=(T const& rhs)
Chris@16 121 {
Chris@16 122 base::operator=(rhs);
Chris@16 123 return *this;
Chris@16 124 }
Chris@16 125
Chris@101 126 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
Chris@101 127 FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
Chris@101 128 #endif
Chris@101 129 #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \
Chris@101 130 (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES))
Chris@101 131 template <typename T0_>
Chris@101 132 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@101 133 explicit deque(T0_&& t0
Chris@101 134 , typename enable_if<is_convertible<T0_, T0> >::type* /*dummy*/ = 0
Chris@101 135 )
Chris@101 136 : base(BOOST_FUSION_FWD_ELEM(T0_, t0), detail::nil_keyed_element())
Chris@101 137 {}
Chris@101 138 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@101 139 explicit deque(deque&& rhs)
Chris@101 140 : base(std::forward<deque>(rhs))
Chris@101 141 {}
Chris@101 142 template<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, typename U)>
Chris@101 143 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@101 144 deque(deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)>&& seq
Chris@101 145 , typename disable_if<
Chris@101 146 is_convertible<deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)>, T0>
Chris@101 147 >::type* /*dummy*/ = 0)
Chris@101 148 : base(std::forward<deque<BOOST_PP_ENUM_PARAMS(FUSION_MAX_DEQUE_SIZE, U)>>(seq))
Chris@101 149 {}
Chris@16 150 template <typename T>
Chris@101 151 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@16 152 deque&
Chris@16 153 operator=(T&& rhs)
Chris@16 154 {
Chris@101 155 base::operator=(BOOST_FUSION_FWD_ELEM(T, rhs));
Chris@16 156 return *this;
Chris@16 157 }
Chris@16 158 #endif
Chris@101 159 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
Chris@101 160 FUSION_HASH endif
Chris@101 161 #endif
Chris@16 162
Chris@16 163 };
Chris@16 164
Chris@16 165 template <>
Chris@16 166 struct deque<> : detail::nil_keyed_element
Chris@16 167 {
Chris@16 168 typedef deque_tag fusion_tag;
Chris@16 169 typedef bidirectional_traversal_tag category;
Chris@16 170 typedef mpl::int_<0> size;
Chris@16 171 typedef mpl::int_<0> next_up;
Chris@101 172 typedef mpl::int_<-1> next_down;
Chris@16 173 typedef mpl::false_ is_view;
Chris@16 174
Chris@16 175 template <typename Sequence>
Chris@101 176 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@16 177 deque(Sequence const&,
Chris@16 178 typename enable_if<
Chris@16 179 mpl::and_<
Chris@16 180 traits::is_sequence<Sequence>
Chris@101 181 , result_of::empty<Sequence> > >::type* /*dummy*/ = 0) BOOST_NOEXCEPT
Chris@16 182 {}
Chris@16 183
Chris@101 184 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@101 185 deque() BOOST_NOEXCEPT {}
Chris@16 186 };
Chris@16 187
Chris@16 188 }}
Chris@16 189
Chris@101 190 #undef FUSION_HASH
Chris@101 191
Chris@16 192 #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)
Chris@16 193 #pragma wave option(output: null)
Chris@16 194 #endif
Chris@16 195
Chris@16 196 #endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES
Chris@16 197
Chris@16 198 #endif