#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <functional>
#include <deque>
using namespace std;
#include <tr1/functional>
using namespace std::tr1::placeholders;
template<class Function_t>
void for_each_x(Function_t func,int interval)
{
for(int sc = 0; sc < 10; sc+=interval){
func((const int)sc);
}
}
void foo(int x,const int y)
{
}
int main(int argc, char *argv[])
{
for_each_x(tr1::bind(tr1::function<void(int,const int)>(foo),_1,11),2);
return 0;
}
gcc 4.2.2 ou 4.4.1 donne très long message d'erreur. si je change le "const int" à "int", alors pas de message d'erreur. Mais j'aime vraiment avoir le "const int" pour m'assurer que la variable du compteur ne change pas par accident si l'argument de la fonction est passé par référence.pourquoi TR1 :: bind ne peut pas être compilé si le type d'argument est "const int"