当前位置:   article > 正文

c语言中错误c2061,error C2061: 语法错误: 标识符“_Wherenode”

c2061语法错误:标识符wstring

昨天同事说,类里加了个静态的vector类型的公共成员后,在其他类里调用,操作该成员,编译出错。

1>d:\program files\microsoft visual studio 9.0\vc\include\xtree(1411) : error C2061: 语法错误: 标识符“_Wherenode”

1>        d:\program files\microsoft visual studio 9.0\vc\include\xtree(1408): 编译类模板成员函数“std::_Tree_nod<_traits>::_Node *std::_Tree<_traits>::_Buynode(std::_Tree_nod<_traits>::_Node *,std::_Tree_nod<_traits>::_Node *,std::_Tree_nod<_traits>::_Node *,const IgnoreCaseWString &,char)”时

1>        with

1>        [

1>            _Traits=std::_Tset_traits,std::allocator,false>

我的第一感觉就是:不可能吧!转过去看了看。

开始以为是vector使用的自定义类型的问题。换成更简单的set试一下,依然如此。去掉静态声明后再试,还是这样。经过尝试发现,在定义该成员的类里的成员函数操作该成员就没问题,在其他类里直接操作该成员就报 xtree(1411) : error C2061: 语法错误: 标识符“_Wherenode”

看了xtree的对应代码,_Wherenode分明是在前2行声明且赋值的一个指针。当时想来想去也想不出啥原因。

今天CSDN再搜了一下,找到一个说法,是MFC的DEBUG_NEW导致的。

我验证了一下,果然如此。

原来 afx.h中定义了 #define DEBUG_NEW new(THIS_FILE, __LINE__) 和 #define THIS_FILE          __FILE__

被包含的位置在DEBUG_NEW 之后,自然就不认识THIS_FILE了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/995679
推荐阅读
相关标签
  

闽ICP备14008679号