以下是我目前正在使用的一些代码:
int Engine::getEntityCount(const int objectType)
{
using namespace std;
int total = 0;
for_each(p_entities.begin(), p_entities.end(),
[&objectType,&total](pair<const int, const list<Entity*>> pair)
{
for_each((pair.second).begin(),(pair.second).end(),
[&objectType,&total](Entity* &entity)
{
if ( entity->getAlive() == true && entity->getObjectType() == objectType )
++total;
});
});
return total;
}
我从intel c ++收到以下错误:
错误:函数“lambda [](实体*&amp;) - &gt; void :: operator()” 无法使用给定的参数列表c:\ Program Files调用 (x86)\ Microsoft Visual Studio 10.0 \ VC \ include \ algorithm
我很难理解这里的错误。有没有人有任何想法?
答案 0 :(得分:2)
您要求对const
指针进行非Entity
引用。包含该指针的列表是const
。您必须在非const指针或const列表之间做出决定。
答案 1 :(得分:-1)
....
for_each((pair.second).begin(),(pair.second).end(),
[&objectType,&total](const Entity* entity)
{
....
});
});
...