我正在尝试使用 stlplus ntree 类并使用它编写了一个程序,并且在 Windows 环境中编译它没有问题。我试图将它移植到 Ubuntu 中,但有错误。
stlplus ntree 类使用模板。这是我的代码示例
ntree<rule_node_struct> t;
ntree<rule_node_struct>::iterator cur_it;
if (cur_it == t.root())
{
// do something
}
当我使用 g++ 编译时,我收到以下错误消息
在 'bool stlplus::ntree_iterator::operator==(const this_iterator&) const [with T = rule_node_struct; TRef = rule_node_struct&; TPtr = rule_node_struct*;stlplus::ntree_iterator::this_iterator = stlplus::ntree_iterator]':
/usr/lib/stlplus3-03-08/containers/ntree.tpp:133:19: 错误:'equal' 没有在这个范围内声明,并且没有声明是通过在实例化点的参数相关查找找到
的stlplus::ntree_node >' 未通过非限定查找找到
/usr/lib/stlplus3-03-08/containers/ntree.tpp:133:19:注意:请改用 'this->equal'
为什么 g++ 有这个错误,而 Windows Visual Studio 没有?