/*============================================================================= Copyright (c) 2005-2012 Joel de Guzman Copyright (c) 2005-2006 Dan Marsden Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #if !defined(BOOST_PP_FUSION_DEQUE_26112006_1649) #define BOOST_PP_FUSION_DEQUE_26112006_1649 #if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE) #error "C++03 only! This file should not have been included" #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if !defined(BOOST_FUSION_DONT_USE_PREPROCESSED_FILES) #include #else #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) #pragma wave option(preserve: 2, line: 0, output: "preprocessed/deque" FUSION_MAX_DEQUE_SIZE_STR ".hpp") #endif /*============================================================================= Copyright (c) 2001-2011 Joel de Guzman Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) This is an auto-generated file. Do not edit! ==============================================================================*/ #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) #pragma wave option(preserve: 1) #endif #define FUSION_HASH # namespace boost { namespace fusion { struct deque_tag; template struct deque : detail::deque_keyed_values::type, sequence_base > { typedef deque_tag fusion_tag; typedef bidirectional_traversal_tag category; typedef typename detail::deque_keyed_values::type base; typedef typename detail::deque_initial_size::type size; typedef mpl::int_ next_up; typedef mpl::int_< mpl::if_ >, mpl::int_<0>, mpl::int_<-1> >::type::value> next_down; typedef mpl::false_ is_view; #include BOOST_FUSION_GPU_ENABLED deque() {} BOOST_FUSION_GPU_ENABLED explicit deque(typename add_reference::type>::type t0) : base(t0, detail::nil_keyed_element()) {} BOOST_FUSION_GPU_ENABLED explicit deque(deque const& rhs) : base(rhs) {} template BOOST_FUSION_GPU_ENABLED deque(deque const& seq) : base(seq) {} template BOOST_FUSION_GPU_ENABLED deque(Sequence const& seq, typename disable_if >::type* /*dummy*/ = 0) : base(base::from_iterator(fusion::begin(seq))) {} template BOOST_FUSION_GPU_ENABLED deque& operator=(deque const& rhs) { base::operator=(rhs); return *this; } template BOOST_FUSION_GPU_ENABLED deque& operator=(T const& rhs) { base::operator=(rhs); return *this; } #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) FUSION_HASH if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) #endif #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \ (defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES)) template BOOST_FUSION_GPU_ENABLED explicit deque(T0_&& t0 , typename enable_if >::type* /*dummy*/ = 0 ) : base(std::forward(t0), detail::nil_keyed_element()) {} BOOST_FUSION_GPU_ENABLED explicit deque(deque&& rhs) : base(std::forward(rhs)) {} template BOOST_FUSION_GPU_ENABLED deque(deque&& seq) : base(std::forward>(seq)) {} template BOOST_FUSION_GPU_ENABLED deque& operator=(T&& rhs) { base::operator=(std::forward(rhs)); return *this; } #endif #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) FUSION_HASH endif #endif }; template <> struct deque<> : detail::nil_keyed_element { typedef deque_tag fusion_tag; typedef bidirectional_traversal_tag category; typedef mpl::int_<0> size; typedef mpl::int_<0> next_up; typedef mpl::int_<0> next_down; typedef mpl::false_ is_view; template BOOST_FUSION_GPU_ENABLED deque(Sequence const&, typename enable_if< mpl::and_< traits::is_sequence , result_of::empty > >::type* /*dummy*/ = 0) {} BOOST_FUSION_GPU_ENABLED deque() {} }; }} #undef FUSION_HASH #if defined(__WAVE__) && defined(BOOST_FUSION_CREATE_PREPROCESSED_FILES) #pragma wave option(output: null) #endif #endif // BOOST_FUSION_DONT_USE_PREPROCESSED_FILES #endif