考虑某个类的这个模板成员方法:
template<typename T>
bool elementIsInSharedPtrVector(const T& p_elem, const std::vector< boost::shared_ptr< T > >& p_Vector) const
{
return (std::find_if(p_Vector.begin(), p_Vector.end(), **boost::lambda::_1 == p_elem) != p_Vector.end());
}
编译器给出了这个错误(除了数百个模板错误):
usr/include/boost/pointee.hpp:30: error: no type named 'element_type' in 'struct SLnAdjW'
该类型SLnAdjW
是具有自由定义 == 运算符函数的 POD C 结构。
我在这里做错了什么?