| 
	+
 |   | コード
 | 
__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
}
 |