C++11???boost??λ??placeholder
???????????? ???????[ 2014/11/3 11:36:47 ] ????????C++ NET ??
????????????????????????????n????????????????n!????????????5??????ò?д120???????boost???preprocessor???????????Щ??????????????????????????????????????????????preprocessor??????????????????о???????????д???????????????
#ifndef HI_MPL_SUPPORT_LAMBDA_H_INCLUDE
#define HI_MPL_SUPPORT_LAMBDA_H_INCLUDE
#define SUPPORT_LAMBDA_1_IMPL(classname?? A1)
template<>
struct classname##< A1 >
{
template<typename... TList>
struct apply
{
using type = typename classname##<
typename A1::apply<TList...>::type>::type;
};
};
#define SUPPORT_LAMBDA_2_IMPL(classname?? A1?? A2)
template<>
struct classname##< A1?? A2 >
{
template<typename... TList>
struct apply
{
using type = typename classname##<
typename A1::apply<TList...>::type??
typename A2::apply<TList...>::type>::type;
};
};
#define SUPPORT_LAMBDA_3_IMPL(classname?? A1?? A2?? A3)
template<>
struct classname##< A1?? A2?? A3 >
{
template<typename... TList>
struct apply
{
using type = typename classname##<
typename A1::apply<TList...>::type??
typename A2::apply<TList...>::type??
typename A3::apply<TList...>::type>::type;
};
};
#define SUPPORT_LAMBDA_4_IMPL(classname?? A1?? A2?? A3?? A4)
template<>
struct classname##< A1?? A2?? A3?? A4 >
{
template<typename... TList>
struct apply
{
using type = typename classname##<
typename A1::apply<TList...>::type??
typename A2::apply<TList...>::type??
typename A3::apply<TList...>::type
typename A4::apply<TList...>::type>::type;
};
};
#define SUPPORT_LAMBDA_5_IMPL(classname?? A1?? A2?? A3?? A4?? A5)
template<>
struct classname##< A1?? A2?? A3?? A4?? A5 >
{
template<typename... TList>
struct apply
{
using type = typename classname##<
typename A1::apply<TList...>::type??
typename A2::apply<TList...>::type??
typename A3::apply<TList...>::type
typename A4::apply<TList...>::type
typename A5::apply<TList...>::type>::type;
};
};
#define SUPPORT_LAMBDA_1(classname?? P)
SUPPORT_LAMBDA_1_IMPL(classname?? P##1)
#define SUPPORT_LAMBDA_2(classname?? P)
SUPPORT_LAMBDA_2_IMPL(classname?? P##1?? P##2)
SUPPORT_LAMBDA_2_IMPL(classname?? P##2?? P##1)
#define SUPPORT_LAMBDA_3(classname?? P)
SUPPORT_LAMBDA_3_IMPL(classname?? P##1?? P##2?? P##3)
SUPPORT_LAMBDA_3_IMPL(classname?? P##1?? P##3?? P##2)
SUPPORT_LAMBDA_3_IMPL(classname?? P##2?? P##1?? P##3)
SUPPORT_LAMBDA_3_IMPL(classname?? P##2?? P##3?? P##1)
SUPPORT_LAMBDA_3_IMPL(classname?? P##3?? P##1?? P##2)
SUPPORT_LAMBDA_3_IMPL(classname?? P##3?? P##2?? P##1)
#define SUPPORT_LAMBDA_4(classname?? P)
SUPPORT_LAMBDA_4_IMPL(classname?? P##1?? P##2?? P##3?? P##4)
SUPPORT_LAMBDA_4_IMPL(classname?? P##1?? P##2?? P##4?? P##3)
SUPPORT_LAMBDA_4_IMPL(classname?? P##1?? P##3?? P##2?? P##4)
SUPPORT_LAMBDA_4_IMPL(classname?? P##1?? P##3?? P##4?? P##2)
SUPPORT_LAMBDA_4_IMPL(classname?? P##1?? P##4?? P##3?? P##2)
SUPPORT_LAMBDA_4_IMPL(classname?? P##1?? P##4?? P##2?? P##3)
SUPPORT_LAMBDA_4_IMPL(classname?? P##2?? P##1?? P##3?? P##4)
SUPPORT_LAMBDA_4_IMPL(classname?? P##2?? P##1?? P##4?? P##3)
SUPPORT_LAMBDA_4_IMPL(classname?? P##2?? P##3?? P##1?? P##4)
SUPPORT_LAMBDA_4_IMPL(classname?? P##2?? P##3?? P##4?? P##1)
SUPPORT_LAMBDA_4_IMPL(classname?? P##2?? P##4?? P##1?? P##3)
SUPPORT_LAMBDA_4_IMPL(classname?? P##2?? P##4?? P##3?? P##1)
SUPPORT_LAMBDA_4_IMPL(classname?? P##3?? P##1?? P##2?? P##4)
SUPPORT_LAMBDA_4_IMPL(classname?? P##3?? P##1?? P##4?? P##2)
SUPPORT_LAMBDA_4_IMPL(classname?? P##3?? P##2?? P##1?? P##4)
SUPPORT_LAMBDA_4_IMPL(classname?? P##3?? P##2?? P##4?? P##1)
SUPPORT_LAMBDA_4_IMPL(classname?? P##3?? P##4?? P##1?? P##2)
SUPPORT_LAMBDA_4_IMPL(classname?? P##3?? P##4?? P##2?? P##1)
SUPPORT_LAMBDA_4_IMPL(classname?? P##4?? P##1?? P##2?? P##3)
SUPPORT_LAMBDA_4_IMPL(classname?? P##4?? P##1?? P##3?? P##2)
SUPPORT_LAMBDA_4_IMPL(classname?? P##4?? P##2?? P##1?? P##3)
SUPPORT_LAMBDA_4_IMPL(classname?? P##4?? P##2?? P##3?? P##1)
SUPPORT_LAMBDA_4_IMPL(classname?? P##4?? P##3?? P##1?? P##2)
SUPPORT_LAMBDA_4_IMPL(classname?? P##4?? P##3?? P##2?? P##1)
#define SUPPORT_LAMBDA(classname?? n?? prefix)
SUPPORT_LAMBDA_##n(classname?? prefix)
#endif
??????????????????λ???????????????SUPPORT_LAMBDA??????????????????λ??????????????????????λ??????????????????????????????
template<typename T?? typename... TList> struct push_back;
template<typename T?? typename... TList>
struct push_back< typelist<TList...>?? T>
{
typedef typelist<TList...?? T> type;
};
template<>
struct push_back< nulllist >
{
typedef nulllist type;
};
SUPPORT_LAMBDA(push_back?? 2?? placeholders::_);
?????????????????λ?????????boost???????????????????????λ????????????????????????????·???????????á?
???????????????????????漰???????????????????SPASVOС??(021-61079698-8054)?????????????????????????
??????
??C++????????????C++ lvalue??rvalueC++11????????C++???????????????C++?е?????????????????C++?????????C++???Windows????λ??C/C++???????????????????JAVA??C??C++??????????c++??python???????????????????????????????C++???????C++?е????????C++????????????????C++ ???????????????C++?????????????????????C++????????????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11????????
?????????App Bug???????????????????????Jmeter?????????QC??????APP????????????????app?????е????????jenkins+testng+ant+webdriver??????????????JMeter????HTTP???????Selenium 2.0 WebDriver ??????