我正在使用VS 2010在C ++中编程。 在调试模式下,我通常能够看到我正在使用的每个对象/容器的内容,甚至是来自STL的对象/容器。除了对于以下“Entity_set_z_ordered”设置,我无法看到我的容器的内容,在调试模式下它只显示“?”
struct z_orderer {
bool operator() ( const Entity* lhs, const Entity* rhs) const{
return (lhs->getPosition().y < rhs->getPosition().y || ( (lhs->getPosition().y == rhs->getPosition().y) && lhs->getPosition().x < rhs->getPosition().x));
}
};
std::set<Entity*, z_orderer> Entity_set_z_ordered;
知道这是从哪里来的,或者我如何调试它?我没有更改任何默认的调试设置
感谢
编辑:我解决了,问题是struct z_orderer是在我的main函数中定义的,而不是在它之外。我不确定这是否会在运行时产生问题,但至少我现在可以调试它了!
答案 0 :(得分:0)
对于其他任何偶然发现的人......当我有这件事时,这件事发生在我身上 指向自身的类模型中的getter属性。这是一个复制粘贴错误,注意下面的属性名称是ShouldNotProcess,并且在getter中它返回自己。回报应该是:return!this。 ShouldProcess;
public bool ShouldNotProcess
{
get { return !this.ShouldNotProcess; }
}