pokeColor(l.elem(i,j),r.elem(i,j),row);
pokeColor(l.elem(i,j),r.elem(i,j),row,col);
pokeColor(PMatrix<T1,N,C>& l, const PMatrix<T2,N,C>& r, int row){  typedef typename UnaryReturn<PMatrix<T1,N,C>, FnPokeColorMatrix>::Type_t  Return_t;  for(int i=0; i < N; ++i)    for(int j=0; j < N; ++j)      pokeColor(l.elem(i,j),r.elem(i,j),row);  return static_cast<Return_t&>(l);}