Hello I have a method to pass in a variable, is it possible to do it without puut the method cpu_kernel_trainMe in static ?
class StarPuNet
{
 public:
   void cpu_kernel_trainMe(void *buffers[], void *cl_arg) {}
   int initStarPu() 
   {
     starpu_codelet_init(&cl_);
     cl_.cpu_funcs     [0] = cpu_kernel_trainMe;   //The problem is here
     cl_.cpu_funcs_name[0] = "cpu_kernel_trainMe";
     cl_.nbuffers          = 3;
     cl_.modes         [0] = STARPU_R;
     cl_.modes         [1] = STARPU_R;
     cl_.modes         [2] = STARPU_W;
     cl_.name              = "trainMe";
     return 0;
   };
 private:
   starpu_codelet cl_;
}
The compiler :
In member function ‘int StarPuNet::initStarPu()’:
error: cannot convert ‘StarPuNet::cpu_kernel_trainMe’ from type 
‘void (StarPuNet::)(void**, void*)’ to type ‘starpu_cpu_func_t’ {aka ‘void (*)(void**, void*)’}
I also tried :
cl_.cpu_funcs[0] = void (*cpu_kernel_trainMe)(void **, void *);
The compiler :
error: invalid use of member function ‘void StarPuNet::cpu_kernel_trainMe(void**, void*)’ 
(did you forget the ‘()’ ?)
Here the doc for cpu_funcs
Best regard
