谁能解释我在这里做错了什么?
class Base_Type
{
public:
string name;
int localType;
};
boost::ptr_vector<Base_Type> tVector;
struct findVariable
{
findVariable(const string& name) : _name(name) {};
const string& _name;
bool operator () (const Base_Type& arg) const
{
return (_name == arg.name);
}
};
typedef boost::ptr_vector<Base_Type>::iterator tVector_it;
inline tVector_it findVariable(string& _name)
{
return find_if(tVector.begin(), tVector.end(), findVariable(_name));
}
编译错误:
...\vc\include\algorithm(43): 错误 C2064: 术语不计算为采用 1 个参数的函数
...\vc\include\algorithm(54):注意:请参阅使用 [ _InIt=boost::void_ptr_iterator 编译的函数模板实例化 '_InIt std::_Find_if<_Iter,_Pr>(_InIt,_InIt,_Pr)' 的参考>>,var_T::Base_Type>, _Iter=boost::void_ptr_iterator>>,var_T::Base_Type>, _Pr=var_T::tVector_it]