at_impl.hpp
来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 64 行
HPP
64 行
/*============================================================================= 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_AT_IMPL_20061029_1946)#define BOOST_FUSION_AT_IMPL_20061029_1946#include <boost/mpl/apply.hpp>#include <boost/fusion/view/transform_view/detail/apply_transform_result.hpp>#include <boost/fusion/sequence/intrinsic/at.hpp>namespace boost { namespace fusion { struct transform_view_tag; struct transform_view2_tag; namespace extension { template<typename Tag> struct at_impl; template<> struct at_impl<transform_view_tag> { template<typename Seq, typename N> struct apply { typedef typename Seq::transform_type F; typedef detail::apply_transform_result<F> transform_type; typedef typename boost::fusion::result_of::at<typename Seq::sequence_type, N>::type value_type; typedef typename mpl::apply<transform_type, value_type>::type type; static type call(Seq& seq) { return seq.f(boost::fusion::at<N>(seq.seq)); } }; }; template<> struct at_impl<transform_view2_tag> { template<typename Seq, typename N> struct apply { typedef typename Seq::transform_type F; typedef detail::apply_transform_result<F> transform_type; typedef typename boost::fusion::result_of::at<typename Seq::sequence1_type, N>::type value1_type; typedef typename boost::fusion::result_of::at<typename Seq::sequence2_type, N>::type value2_type; typedef typename mpl::apply<transform_type, value1_type, value2_type>::type type; static type call(Seq& seq) { return seq.f(boost::fusion::at<N>(seq.seq1), boost::fusion::at<N>(seq.seq2)); } }; }; }}}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?