File indexing completed on 2025-02-23 09:34:55
0001
0002
0003
0004
0005
0006
0007
0008
0009 namespace boost { namespace fusion {
0010 struct deque_tag;
0011 template<typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
0012 struct deque
0013 :
0014 detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::type,
0015 sequence_base<deque<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9> >
0016 {
0017 typedef deque_tag fusion_tag;
0018 typedef bidirectional_traversal_tag category;
0019 typedef typename detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::type base;
0020 typedef typename detail::deque_initial_size<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::type size;
0021 typedef mpl::int_<size::value> next_up;
0022 typedef mpl::int_<-1> next_down;
0023 typedef mpl::false_ is_view;
0024 # if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0025 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0026 deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1)
0027 : base(detail::deque_keyed_values<T0 , T1>::construct(t0 , t1))
0028 {}
0029 # endif
0030 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0031 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0032 deque(T0 const& t0 , T1 const& t1)
0033 : base(detail::deque_keyed_values<T0 , T1>::construct(t0 , t1))
0034 {}
0035 template <typename T_0 , typename T_1>
0036 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0037 deque(T_0 && t0 , T_1 && t1)
0038 : base(detail::deque_keyed_values<T0 , T1>::
0039 forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1)))
0040 {}
0041 # endif
0042 # if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0043 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0044 deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2)
0045 : base(detail::deque_keyed_values<T0 , T1 , T2>::construct(t0 , t1 , t2))
0046 {}
0047 # endif
0048 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0049 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0050 deque(T0 const& t0 , T1 const& t1 , T2 const& t2)
0051 : base(detail::deque_keyed_values<T0 , T1 , T2>::construct(t0 , t1 , t2))
0052 {}
0053 template <typename T_0 , typename T_1 , typename T_2>
0054 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0055 deque(T_0 && t0 , T_1 && t1 , T_2 && t2)
0056 : base(detail::deque_keyed_values<T0 , T1 , T2>::
0057 forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2)))
0058 {}
0059 # endif
0060 # if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0061 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0062 deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3)
0063 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3>::construct(t0 , t1 , t2 , t3))
0064 {}
0065 # endif
0066 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0067 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0068 deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3)
0069 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3>::construct(t0 , t1 , t2 , t3))
0070 {}
0071 template <typename T_0 , typename T_1 , typename T_2 , typename T_3>
0072 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0073 deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3)
0074 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3>::
0075 forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3)))
0076 {}
0077 # endif
0078 # if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0079 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0080 deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4)
0081 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4>::construct(t0 , t1 , t2 , t3 , t4))
0082 {}
0083 # endif
0084 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0085 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0086 deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4)
0087 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4>::construct(t0 , t1 , t2 , t3 , t4))
0088 {}
0089 template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4>
0090 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0091 deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4)
0092 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4>::
0093 forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4)))
0094 {}
0095 # endif
0096 # if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0097 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0098 deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5)
0099 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5>::construct(t0 , t1 , t2 , t3 , t4 , t5))
0100 {}
0101 # endif
0102 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0103 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0104 deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5)
0105 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5>::construct(t0 , t1 , t2 , t3 , t4 , t5))
0106 {}
0107 template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5>
0108 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0109 deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5)
0110 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5>::
0111 forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5)))
0112 {}
0113 # endif
0114 # if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0115 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0116 deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6)
0117 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6))
0118 {}
0119 # endif
0120 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0121 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0122 deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6)
0123 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6))
0124 {}
0125 template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6>
0126 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0127 deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6)
0128 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6>::
0129 forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6)))
0130 {}
0131 # endif
0132 # if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0133 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0134 deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6 , typename detail::call_param<T7 >::type t7)
0135 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7))
0136 {}
0137 # endif
0138 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0139 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0140 deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7)
0141 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7))
0142 {}
0143 template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6 , typename T_7>
0144 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0145 deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7)
0146 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7>::
0147 forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6) , std::forward<T_7>( t7)))
0148 {}
0149 # endif
0150 # if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0151 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0152 deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6 , typename detail::call_param<T7 >::type t7 , typename detail::call_param<T8 >::type t8)
0153 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8))
0154 {}
0155 # endif
0156 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0157 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0158 deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8)
0159 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8))
0160 {}
0161 template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6 , typename T_7 , typename T_8>
0162 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0163 deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8)
0164 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8>::
0165 forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6) , std::forward<T_7>( t7) , std::forward<T_8>( t8)))
0166 {}
0167 # endif
0168 # if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0169 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0170 deque(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6 , typename detail::call_param<T7 >::type t7 , typename detail::call_param<T8 >::type t8 , typename detail::call_param<T9 >::type t9)
0171 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9))
0172 {}
0173 # endif
0174 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0175 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0176 deque(T0 const& t0 , T1 const& t1 , T2 const& t2 , T3 const& t3 , T4 const& t4 , T5 const& t5 , T6 const& t6 , T7 const& t7 , T8 const& t8 , T9 const& t9)
0177 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::construct(t0 , t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9))
0178 {}
0179 template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6 , typename T_7 , typename T_8 , typename T_9>
0180 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0181 deque(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9)
0182 : base(detail::deque_keyed_values<T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::
0183 forward_(std::forward<T_0>( t0) , std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6) , std::forward<T_7>( t7) , std::forward<T_8>( t8) , std::forward<T_9>( t9)))
0184 {}
0185 # endif
0186 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0187 deque()
0188 {}
0189 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0190 explicit deque(typename detail::call_param<T0>::type t0)
0191 : base(t0, detail::nil_keyed_element())
0192 {}
0193 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0194 explicit deque(deque const& rhs)
0195 : base(rhs)
0196 {}
0197 template<typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
0198 BOOST_FUSION_GPU_ENABLED
0199 deque(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9> const& seq)
0200 : base(seq)
0201 {}
0202 template<typename Sequence>
0203 BOOST_FUSION_GPU_ENABLED
0204 deque(Sequence const& seq
0205 , typename disable_if<is_convertible<Sequence, T0>, detail::enabler_>::type = detail::enabler
0206 , typename enable_if<traits::is_sequence<Sequence>, detail::enabler_>::type = detail::enabler)
0207 : base(base::from_iterator(fusion::begin(seq)))
0208 {}
0209 template <typename T>
0210 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0211 deque&
0212 operator=(T const& rhs)
0213 {
0214 base::operator=(rhs);
0215 return *this;
0216 }
0217 # if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0218 template <typename T0_>
0219 BOOST_FUSION_GPU_ENABLED
0220 explicit deque(T0_&& t0
0221 , typename enable_if<is_convertible<T0_, T0>, detail::enabler_>::type = detail::enabler
0222 , typename disable_if_c<
0223 boost::is_same<deque const, typename boost::remove_reference<T0_>::type const>::value
0224 , detail::enabler_
0225 >::type = detail::enabler
0226 )
0227 : base(std::forward<T0_>( t0), detail::nil_keyed_element())
0228 {}
0229 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0230 explicit deque(deque&& rhs)
0231 : base(std::forward<deque>(rhs))
0232 {}
0233 template<typename U0 , typename U1 , typename U2 , typename U3 , typename U4 , typename U5 , typename U6 , typename U7 , typename U8 , typename U9>
0234 BOOST_FUSION_GPU_ENABLED
0235 deque(deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9>&& seq
0236 , typename disable_if<
0237 is_convertible<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9>, T0>
0238 , detail::enabler_
0239 >::type = detail::enabler)
0240 : base(std::forward<deque<U0 , U1 , U2 , U3 , U4 , U5 , U6 , U7 , U8 , U9>>(seq))
0241 {}
0242 template <typename T>
0243 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0244 deque&
0245 operator=(T&& rhs)
0246 {
0247 base::operator=(std::forward<T>( rhs));
0248 return *this;
0249 }
0250
0251 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0252 deque&
0253 operator=(deque const& rhs)
0254 {
0255 base::operator=(static_cast<base const&>(rhs));
0256 return *this;
0257 }
0258 # endif
0259 };
0260 template <>
0261 struct deque<> : detail::nil_keyed_element
0262 {
0263 typedef deque_tag fusion_tag;
0264 typedef bidirectional_traversal_tag category;
0265 typedef mpl::int_<0> size;
0266 typedef mpl::int_<0> next_up;
0267 typedef mpl::int_<-1> next_down;
0268 typedef mpl::false_ is_view;
0269 template <typename Sequence>
0270 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0271 deque(Sequence const&,
0272 typename enable_if<
0273 mpl::and_<
0274 traits::is_sequence<Sequence>
0275 , result_of::empty<Sequence> >, detail::enabler_>::type = detail::enabler) BOOST_NOEXCEPT
0276 {}
0277 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0278 deque() BOOST_NOEXCEPT {}
0279 };
0280 }}