Je reçois les erreurs suivantes :
- '<' : illégal, l'opérande de gauche est de type 'const_Ty'.
- '> : illégal, l'opérande de droite est de type 'const_Ty'.
dans le code ci-dessous.
Il s'agit d'un itérateur relativement simple sur une carte de pointeurs de fonctions où les fonctions sont de la forme void (Game::*)(UINT)
. Je vérifie la valeur par rapport à un flottant, puis j'exécute la fonction. Le problème semble se situer au niveau du for
bien que j'aie une autre boucle for sensiblement similaire quelque part ailleurs qui fonctionne sans problème.
using FuncPtr = void (Game::*)(UINT);
std::map<FuncPtr, float> funcDelayedTriggerMap;
void Game::PollProcessDelayedTriggers()
{
for (std::map<FuncPtr, float>::iterator it = funcDelayedTriggerMap.begin(); it != funcDelayedTriggerMap.end(); ++it)
{
float currentS = m_timer.GetElapsedSeconds();
if (it->second < currentS)
{
(this->*(it->first))(UINT_MAX);
funcDelayedTriggerMap.erase(it->first);
}
}
}