我多年来一直在Windows和Linux上使用std::string的==运算符。现在我正在Linux上编译我的一个库,它大量使用了==。在Linux上,以下函数失败,因为==返回false,即使字符串相等(区分大小写)。
const Data* DataBase::getDataByName( const std::string& name ) const
{
for ( unsigned int i = 0 ; i < m_dataList.getNum() ; i++ )
{
if ( m_dataList.get(i)->getName() == name )
{
return m_dataList.get(i);
}
}
return NULL;
}
getName()方法声明如下:
virtual const std::string& getName() const;
我正在使用gcc 4.4.1和libstdc++44-4.4.1进行构建。
有什么想法吗?在我看来,它看起来完全有效。
保罗