【发布时间】:2013-04-30 00:32:27
【问题描述】:
我正在尝试使用 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:错误:未在此范围内声明“等于”,并且在实例化点通过依赖于参数的查找未找到任何声明[- fpermissive]
/usr/lib/stlplus3-03-08/containers/ntree.tpp:133:19:注意:非限定查找未找到依赖基“stlplus::safe_iterator, stlplus::ntree_node >”中的声明
/usr/lib/stlplus3-03-08/containers/ntree.tpp:133:19:注意:改用“this->equal”
为什么 g++ 有这个错误,而 Windows Visual Studio 没有?
【问题讨论】: