+
| | コード
|
__declspec(dllexport) int WINAPI Vector_For(const std::vector<int> *p,int n)
{
for(std::vector<int>::const_iterator i=p->begin(); i!=p->end(); ++i){
if( *i > n ){
return *i;
}
}
return p->front();
}
__declspec(dllexport) int WINAPI Vector_For2(const std::vector<int> *p,int n)
{
const std::vector<int>::const_iterator iEnd = p->end();
for(std::vector<int>::const_iterator i=p->begin(); i!=iEnd; ++i){
if( *i > n ){
return *i;
}
}
return p->front();
}
__declspec(dllexport) int WINAPI Vector_StdBind2nd(const std::vector<int> *p,int n)
{
return *std::find_if(p->begin(), p->end(), std::bind2nd(std::greater<int>(),n) );
}
__declspec(dllexport) int WINAPI Vector_BoostBind(const std::vector<int> *p,int n)
{
return *std::find_if(p->begin(), p->end(), boost::bind(std::greater<int>(),_1,n) );
}
__declspec(dllexport) int WINAPI Vector_BoostBind_FuncPtr(const std::vector<int> *p,int n)
{
struct F
{
inline static bool f(const int &a,const int &b)
{
return a > b;
}
};
return *std::find_if(p->begin(), p->end(), boost::bind(&F::f,_1,n) );
}
__declspec(dllexport) int WINAPI Vector_BoostFunction_StdBind2nd(const std::vector<int> *p,int n)
{
return *std::find_if(p->begin(), p->end(),
boost::function<bool (const int&)>(std::bind2nd(std::greater<int>(),n)));
}
__declspec(dllexport) int WINAPI Vector_BoostFunction_BoostBind_FuncPtr(const std::vector<int> *p,int n)
{
struct F
{
inline static bool f(const int &a,const int &b)
{
return a > b;
}
};
return *std::find_if(p->begin(), p->end(),
boost::function<bool (const int&)>(boost::bind(&F::f,_1,n)));
}
__declspec(dllexport) int WINAPI Vector_Tr1Bind(const std::vector<int> *p,int n)
{
#if _MSC_VER < 1500
return p->front();
#else
return *std::find_if(p->begin(), p->end(), std::tr1::bind(std::greater<int>(),std::tr1::placeholders::_1,n) );
#endif
}
__declspec(dllexport) int WINAPI Vector_Tr1Bind_FuncPtr(const std::vector<int> *p,int n)
{
#if _MSC_VER < 1500
return p->front();
#else
struct F
{
inline static bool f(const int &a,const int &b)
{
return a > b;
}
};
return *std::find_if(p->begin(), p->end(), std::tr1::bind(&F::f,std::tr1::placeholders::_1,n) );
#endif
}
__declspec(dllexport) int WINAPI Vector_Tr1Function_StdBind2nd(const std::vector<int> *p,int n)
{
#if _MSC_VER < 1500
return p->front();
#else
return *std::find_if(p->begin(), p->end(),
std::tr1::function<bool (const int&)>(std::bind2nd(std::greater<int>(),n)));
#endif
}
__declspec(dllexport) int WINAPI Vector_Tr1Function_Tr1Bind_FuncPtr(const std::vector<int> *p,int n)
{
#if _MSC_VER < 1500
return p->front();
#else
struct F
{
inline static bool f(const int &a,const int &b)
{
return a > b;
}
};
return *std::find_if(p->begin(), p->end(),
std::tr1::function<bool (const int&)>(std::tr1::bind(&F::f,std::tr1::placeholders::_1,n)));
#endif
}
__declspec(dllexport) int WINAPI List_StdBind2nd(const std::list<int> *p,int n)
{
return *std::find_if(p->begin(), p->end(), std::bind2nd(std::greater<int>(),n) );
}
__declspec(dllexport) int WINAPI List_BoostBind(const std::list<int> *p,int n)
{
return *std::find_if(p->begin(), p->end(), boost::bind(std::greater<int>(),_1,n) );
}
__declspec(dllexport) int WINAPI List_Tr1Bind(const std::list<int> *p,int n)
{
#if _MSC_VER < 1500
return p->front();
#else
return *std::find_if(p->begin(), p->end(), std::tr1::bind(std::greater<int>(),std::tr1::placeholders::_1,n) );
#endif
}
|