protect.rst
来自「Boost provides free peer-reviewed portab」· RST 代码 · 共 114 行
RST
114 行
.. Metafunctions/Composition and Argument Binding//protect |60.. Copyright Aleksey Gurtovoy, David Abrahams 2007... 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)protect=======Synopsis--------.. parsed-literal:: template< typename F > struct protect { // |unspecified| // |...| };Description-----------``protect`` is an identity wrapper for a |Metafunction Class| that preventsits argument from being recognized as a |bind expression|.Header------.. parsed-literal:: #include <boost/mpl/protect.hpp>Parameters----------+---------------+---------------------------+---------------------------------------+| Parameter | Requirement | Description |+===============+===========================+=======================================+| ``F`` | |Metafunction Class| | A metafunction class to wrap. |+---------------+---------------------------+---------------------------------------+Expression semantics--------------------For any |Metafunction Class| ``f``:.. parsed-literal:: typedef protect<f> g;:Return type: |Metafunction Class|.:Semantics: If ``f`` is a |bind expression|, equivalent to .. parsed-literal:: struct g { template< typename U1 = |unspecified|\,\ |...| typename U\ *n* = |unspecified| > struct apply : apply_wrap\ *n*\<f,U1,\ |...|\ U\ *n*\ > { }; }; otherwise equivalent to ``typedef f g;``.Example-------.. parsed-literal:: FIXME struct f { template< typename T1, typename T2 > struct apply { // |...| }; }; typedef bind<_1, protect< bind<f,_1,_2> > > typedef apply_wrap0< f0 >::type r1; typedef apply_wrap0< g0 >::type r2; typedef apply_wrap2< f2,int,char >::type r3; BOOST_MPL_ASSERT(( is_same<r1,char> )); BOOST_MPL_ASSERT(( is_same<r2,char> )); BOOST_MPL_ASSERT(( is_same<r3,char> ));See also--------|Composition and Argument Binding|, |Invocation|, |bind|, |quote|, |apply_wrap|
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?