at_impl.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 60 行

HPP
60
字号
/*=============================================================================    Copyright (c) 2001-2006 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_FUSION_DEQUE_AT_IMPL_09122006_2017)#define BOOST_FUSION_DEQUE_AT_IMPL_09122006_2017#include <boost/fusion/container/deque/detail/keyed_element.hpp>#include <boost/mpl/eval_if.hpp>#include <boost/mpl/equal_to.hpp>#include <boost/mpl/assert.hpp>#include <boost/mpl/identity.hpp>#include <boost/type_traits/is_const.hpp>#include <boost/type_traits/add_const.hpp>#include <boost/type_traits/add_reference.hpp>namespace boost { namespace fusion {     struct deque_tag;    namespace extension     {        template<typename T>        struct at_impl;                template<>        struct at_impl<deque_tag>        {            template<typename Sequence, typename N>            struct apply            {                typedef typename Sequence::next_up next_up;                typedef typename Sequence::next_down next_down;                BOOST_MPL_ASSERT_RELATION(next_down::value, !=, next_up::value);                                typedef mpl::plus<next_down, mpl::int_<1> > offset;                typedef mpl::int_<mpl::plus<N, offset>::value> adjusted_index;                typedef typename detail::keyed_element_value_at<Sequence, adjusted_index>::type element_type;                typedef typename add_reference<                    typename mpl::eval_if<                    is_const<Sequence>,                    add_const<element_type>,                    mpl::identity<element_type> >::type>::type type;                static type call(Sequence& seq)                {                    return seq.get(adjusted_index());                }            };        };    }}}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?