【发布时间】:2014-08-10 07:00:50
【问题描述】:
我有一个map<string, std::function<void(AgentMessage&)>>(AgentMessage 是一个带有几个字符串的结构)。当我尝试使用迭代器访问它时,pair 的复制函数出现访问冲突。
注意:std::function 指向与复制位置不同的 dll 中的函数。
编辑:我认为解释对于一段简单的代码来说已经足够了,但仍然 - 就是这样。
for (map<string, std::function<void(AgentMessage&)>>::iterator it = mapRef.begin(); it != mapRef.end(); it++)
{
auto functionCopy = it->second; // IT CRASHES HERE
}
【问题讨论】:
-
与其描述你的代码,为什么不展示它呢? (最好是 SSCCE,sscce.org)
-
如果将函数替换为不执行任何操作的 lambda,它是否也会崩溃?
标签: c++ function access-violation functor