Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:46:24

0001 /*=============================================================================
0002     Copyright (c) 2005-2012 Joel de Guzman
0003     Copyright (c) 2005-2006 Dan Marsden
0004 
0005     Distributed under the Boost Software License, Version 1.0. (See accompanying
0006     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0007 ==============================================================================*/
0008 #if !defined(BOOST_FUSION_FRONT_EXTENDED_DEQUE_26112006_2209)
0009 #define BOOST_FUSION_FRONT_EXTENDED_DEQUE_26112006_2209
0010 
0011 #include <boost/fusion/support/config.hpp>
0012 #include <boost/mpl/int.hpp>
0013 #include <boost/fusion/support/sequence_base.hpp>
0014 #include <boost/fusion/sequence/intrinsic/size.hpp>
0015 #include <boost/fusion/container/deque/detail/keyed_element.hpp>
0016 
0017 namespace boost { namespace fusion
0018 {
0019     template <typename Deque, typename T>
0020     struct front_extended_deque
0021       : detail::keyed_element<typename Deque::next_down, T, Deque>
0022       , sequence_base<front_extended_deque<Deque, T> >
0023     {
0024         typedef detail::keyed_element<typename Deque::next_down, T, Deque> base;
0025         typedef mpl::int_<(Deque::next_down::value - 1)> next_down;
0026         typedef typename Deque::next_up next_up;
0027         typedef mpl::int_<(result_of::size<Deque>::value + 1)> size;
0028 
0029         template <typename Arg>
0030         BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0031         front_extended_deque(Deque const& deque, Arg const& val)
0032           : base(val, deque)
0033         {}
0034 
0035 #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
0036         template <typename Arg>
0037         BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0038         front_extended_deque(Deque const& deque, Arg& val)
0039           : base(val, deque)
0040         {}
0041 #else
0042         template <typename Arg>
0043         BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
0044         front_extended_deque(Deque const& deque, Arg&& val)
0045           : base(BOOST_FUSION_FWD_ELEM(Arg, val), deque)
0046         {}
0047 #endif
0048     };
0049 }}
0050 
0051 #endif