Re[7]: Использование алгоритмов
От: R0  
Дата: 02.10.03 13:47
Оценка:
Здравствуйте, Andrew Galuzin, Вы писали:

AG>Вот несколько синтетический пример:


Пример отличный, и работает. Спасибо.
Но вот, скажем, если не не int, а string...

#include <vector>
#include <algorithm>
#include <functional>
#include <iostream>

using namespace std;

class A
{
    string value_;
public:
    A(const string& value): value_ (value){}
    bool equal(const string& value) const{return /*value == value_;*/true;}
};

int main()
{
    vector<string> iv;
    iv.push_back("10");
    iv.push_back("1");
    iv.push_back("3");
    iv.push_back("0");
    iv.push_back("6");
    
    A a("0");
    find_if(iv.begin(), iv.end(), bind1st(mem_fun(&A::equal), &a) );

}


... то не компилиться:

c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\functional(272): warning C4181: qualifier applied to reference type; ignored
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\functional(272): error C2529: '_Right' : reference to reference is illegal
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\functional(277): error C2529: '_Right' : reference to reference is illegal
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\functional(278): error C2535: 'std::binder1st<_Fn2>::result_type std::binder1st<_Fn2>::operator ()(std::binder1st<_Fn2>::argument_type & ) const' : member function already defined or declared
with
[
_Fn2=std::const_mem_fun1_t<bool,A,const std::string &>
]


Подскажите, где собака порылась?

R.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.