A veces, necesito algún functor-helper para manipular la lista. Intento mantener el alcance lo más local posible.cómo definir un functor dentro de una función
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
struct Square
{
int operator()(int x)
{
return x*x;
}
};
int a[5] = {0, 1, 2, 3, 4};
int b[5];
transform(a, a+5, b, Square());
for(int i=0; i<5; i++)
cout<<a[i]<<" "<<b[i]<<endl;
}
hello.cpp: In function ‘int main()’:
hello.cpp:18:34: error: no matching function for call to ‘transform(int [5], int*, int [5], main()::Square)’
Si muevo Square
de main()
, está bien.
[Ver esta pregunta] (http://stackoverflow.com/questions/6880077/why-does-this-stdsort-predicate-fail-when-the-class-is-inside-main). – hammar
Hmm ... Copié el código de la pregunta y lo probé en VS2010, y funciona bien ...: - \. – TCS