Здравствуйте, 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.