Non è possibile creare una versione "prefissa" dell'operatore con una funzione membro.
E comunque non ne hai bisogno.
Con:
codice:
iterator operator+(const int &n)const {return iterator(ptr+n);} // ptr è un puntatore
hai definito l'operazione base da fare.
Con:
codice:
template<typename T,typename Functor>
typename DVector<T,Functor>::iterator operator+(const typename DVector<T,Functor>::iterator &ma, const int& n){
return ma+n;
}
template<typename T,typename Functor>
typename DVector<T,Functor>::iterator operator+(const int &n,const typename DVector<T,Functor>::iterator &ma){
return ma+n;
}
ti crei le astrazioni che ti servono.