在 Visual Studio 上,这段代码就像一个魅力:
auto child = node.childs.begin();
while (child != node.childs.end()) {
vector<int> siblings;
for (auto it : node.childs){
if (it != *child._Ptr)siblings.push_back( it );
}
if (CheckSomething( tree, *child._Ptr, siblings ) > 0) {
//delete that child
child = node.childs.erase( child );
}
else ++child;
}
但在 XCode 上使用相同的代码时,我收到了诸如 _Ptr is not exention? 之类的错误?不是具有相同结构的同一个 std 库吗?为什么会发生这种情况?
File.cpp:1745:22: No member named '_Ptr' in 'std::__1::__wrap_iter<int *>'
提前致谢
该规范没有定义这样的成员变量。_Ptr
是特定于实现的(在本例中是特定于 MSVC 的)成员变量,在其他实现上可能存在也可能不存在。
通常,以下划线开头的名称指的是特定于实现的成员。如果您希望代码可移植或在编译器版本之间不中断,请不要访问这些内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)