как привязать функцию шаблона

Привет всем, вы там, гуру Boost!

Я хочу найти определенный элемент в векторе строк, игнорируя регистр:

#include <iostream>
#include <string>
#include <vector>
#include "boost/algorithm/string.hpp"
#include "boost/bind.hpp"

using std::string;
using std::vector;

bool icmp(const string& str1, const string& str2)
{
    return boost::iequals(str1, str2);
}

int main(int argc, char* argv[])
{
    vector<string> vec;
    vec.push_back("test");

//  if (std::find_if(vec.begin(), vec.end(), boost::bind(&boost::iequals<string,string>, "TEST", _1)) != vec.end()) <-- does not compile
    if (std::find_if(vec.begin(), vec.end(), boost::bind(&icmp, "TEST", _1)) != vec.end())
        std::cout << "found" << std::endl;

    return 0;
}

Пока это работает нормально, но что я хотелось бы знать, можно ли избавиться от дополнительной функции (icmp ()) и напрямую вызывать iequals (функцию шаблона) (как в строке с комментариями).

Заранее спасибо!

6
задан raines 9 November 2011 в 16:45
поделиться