我真的试图推迟提出这个问题,因为它似乎应该是一个简单的问题,但是这里有。我一直在用一段新代码追逐一个段错误。我已经包含了展示下面这个问题的最小块。其余的代码已经工作了一段时间。
class A {
private:
std::map <uint64_t, uint32_t> memberMap;
public:
A();
~A();
void access() {
const uint64_t key = 1;
uint32_t value = 1;
if(memberMap.count(key) == 0) {
memberMap.insert(std::pair<uint64_t, uint32_t>(key, value));
} else if(memberMap[key] < value) {
memberMap[key] = value;
}
}
};
class B : public BsParent {
private:
A handler;
public:
B();
~B();
uint64_t access(Data dat) {
//...
handler.access();
//...
}
};
到目前为止我已尝试过......
有关进一步调试步骤的任何想法或建议吗?
答案 0 :(得分:0)
可能你已经删除了原始代码以保持简洁,但它没有正确地传达问题而且不可重现。
虽然它看起来没有任何问题但是如果您使用非本机和本地类类型的键/值对映射,则可能需要两者的复制构造函数。