Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ g++;错误消息";使用';这->;相等';而不是;_C++_Templates_G++ - Fatal编程技术网

C++ g++;错误消息";使用';这->;相等';而不是;

C++ g++;错误消息";使用';这->;相等';而不是;,c++,templates,g++,C++,Templates,G++,我正在尝试使用stlplus ntree类,并用它编写了一个程序,在Windows环境中编译它没有问题。我尝试将其移植到Ubuntu,但出现了错误 stlentree类使用模板。下面是我的代码示例 ntree<rule_node_struct> t; ntree<rule_node_struct>::iterator cur_it; if (cur_it == t.root()) { // do something } ntreet; ntree::迭代器cur_it;

我正在尝试使用stlplus ntree类,并用它编写了一个程序,在Windows环境中编译它没有问题。我尝试将其移植到Ubuntu,但出现了错误

stlentree类使用模板。下面是我的代码示例

ntree<rule_node_struct> t;
ntree<rule_node_struct>::iterator cur_it;
if (cur_it == t.root())
{
// do something
}
ntreet;
ntree::迭代器cur_it;
if(cur_it==t.root())
{
//做点什么
}
当我使用g++编译时,我得到以下错误消息

在实例化'bool stlplus::ntree\u iterator::operator==(const this\u iterator&)const[with T=rule\u node\u struct;TRef=rule\u node\u struct&;TPtr=rule\u node\u struct*;stlplus::ntree\u iterator::this\u iterator=stlplus\n\u iterator]:
/usr/lib/stlplus3-03-08/containers/ntree.tpp:133:19:错误:“equal”未在此范围内声明,并且在实例化点[-fppermissive]通过依赖参数的查找未找到任何声明
/usr/lib/stlplus3-03-08/containers/ntree.tpp:133:19:注意:非限定查找未找到依赖基“stlplus::safe_迭代器,stlplus::ntree_节点>”中的声明
/usr/lib/stlplus3-03-08/containers/ntree.tpp:133:19:注意:使用“this->equal”代替


为什么g++会有这个错误而Windows Visual Studio没有呢?

这似乎是
ntree
类中的一个错误,因为g++会对符号进行正确的两阶段查找,而VC似乎会接受损坏的代码。请注意,早期版本的G++也接受这种代码(AFAIK),因此它只在存储库的最新版本中得到修复。尽管这个版本是2010年的。在我看来,它从未进入任何版本,所以请使用HEAD版本或要求他们发布。

感谢您的帮助。我已获得存储库中的固定代码