C++的一个好库。。。现在很流行

源代码在线查看: arg.rst

软件大小: 21075 K
上传用户: lyyfengyutongzh
关键词:
下载地址: 免注册下载 普通下载 VIP

相关代码

				.. Metafunctions/Composition and Argument Binding//arg |50
				
				arg
				===
				
				Synopsis
				--------
				
				.. parsed-literal::
				   
				    template< int n > struct arg;
				
				    template struct arg
				    {
				        template< typename A1,\ |...| typename A\ *n* = |unspecified| >
				        struct apply
				        {
				            typedef A1 type;
				        };
				    };
				
				    |...|
				
				    template struct arg
				    {
				        template< typename A1,\ |...| typename A\ *n* >
				        struct apply
				        {
				            typedef A\ *n* type;
				        };
				    };
				
				
				Description
				-----------
				
				``arg`` specialization is a |Metafunction Class| that return the ``n``\ th of its arguments.
				
				
				Header
				------
				
				.. parsed-literal::
				    
				    #include 
				
				
				Parameters
				----------
				
				+---------------+-----------------------------------+-----------------------------------------------+
				| Parameter     | Requirement                       | Description                                   |
				+===============+===================================+===============================================+
				| ``n``         | An integral constant              | A number of argument to return.               |
				+---------------+-----------------------------------+-----------------------------------------------+
				
				
				Expression semantics
				--------------------
				
				For any integral constant ``n`` in the range [1, |BOOST_MPL_LIMIT_METAFUNCTION_ARITY|\] and
				arbitrary types |a1...an|:
				
				.. parsed-literal::
				
				    typedef apply_wrap\ *n*\< arg,a1,\ |...|\a\ *n* >::type x;
				
				:Return type:
				    A type.
				
				:Semantics:
				    ``x`` is identical to ``an``.
				
				
				Example
				-------
				
				.. parsed-literal::
				
				    typedef apply_wrap\ ``5``\< arg,bool,char,short,int,long >::type t1;
				    typedef apply_wrap\ ``5``\< arg,bool,char,short,int,long >::type t3;
				    
				    BOOST_MPL_ASSERT(( is_same< t1, bool > ));
				    BOOST_MPL_ASSERT(( is_same< t3, short > ));
				
				
				See also
				--------
				
				|Composition and Argument Binding|, |Placeholders|, |lambda|, |bind|, |apply|, |apply_wrap|
							

相关资源