1.. Metafunctions/Invocation//unpack_args |30 2 3unpack_args 4=========== 5 6Synopsis 7-------- 8 9.. parsed-literal:: 10 11 template< 12 typename F 13 > 14 struct unpack_args 15 { 16 // |unspecified| 17 // |...| 18 }; 19 20 21Description 22----------- 23 24A higher-order primitive transforming an *n*-ary |Lambda Expression| ``F`` into 25an unary |Metafunction Class| ``g`` accepting a single sequence of *n* arguments. 26 27 28Header 29------ 30 31.. parsed-literal:: 32 33 #include <boost/mpl/unpack_args.hpp> 34 35 36Model of 37-------- 38 39|Metafunction Class| 40 41 42Parameters 43---------- 44 45+---------------+-----------------------+-------------------------------------------+ 46| Parameter | Requirement | Description | 47+===============+=======================+===========================================+ 48| ``F`` | |Lambda Expression| | A lambda expression to adopt. | 49+---------------+-----------------------+-------------------------------------------+ 50 51 52Expression semantics 53-------------------- 54 55For an arbitrary |Lambda Expression| ``f``, and arbitrary types |a1...an|: 56 57 58.. parsed-literal:: 59 60 typedef unpack_args<f> g; 61 62:Return type: 63 |Metafunction Class|. 64 65:Semantics: 66 ``g`` is a unary |Metafunction Class| such that 67 68 .. parsed-literal:: 69 70 apply_wrap\ *n*\ < g, vector<a1,\ |...|\ a\ *n*\ > >::type 71 72 is identical to 73 74 .. parsed-literal:: 75 76 apply<F,a1,\ |...|\ a\ *n*\ >::type 77 78 79Example 80------- 81 82.. parsed-literal:: 83 84 BOOST_MPL_ASSERT(( apply< 85 unpack_args< is_same<_1,_2> > 86 , vector<int,int> 87 > )); 88 89 90See also 91-------- 92 93|Metafunctions|, |Lambda Expression|, |Metafunction Class|, |apply|, |apply_wrap|, |bind| 94 95 96.. copyright:: Copyright � 2001-2009 Aleksey Gurtovoy and David Abrahams 97 Distributed under the Boost Software License, Version 1.0. (See accompanying 98 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 99