1

これが私が現在使用しているコードの一部です:

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 [](Entity *&)->void::operator()" は、指定された引数リストで呼び出すことはできません c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\algorithm

ここで何が問題なのか理解に苦しむ。誰にもアイデアはありますか?

4

2 に答える 2

2

constへのポインターへの非参照を求めていますEntity。そのポインタを含むリストはconst. 非 const ポインターまたは const リストのいずれかを決定する必要があります。

于 2012-12-03T06:07:24.243 に答える