So basically I want to do the following operations:

CMatriz<sometype> matrix1;
sometype tg1;

matrix1+tg1;
matrix1+5.0;

However:
Code:
	// Sobrecarga de operador + 
	CMatriz<TG> operator+(const CMatriz<TG> &op); // CMatriz + CMatriz

	CMatriz<TG> operator+(const TG &op); // Matriz + objeto TG
	friend CMatriz<TG> operator+(const TG &op1,const CMatriz<TG> &op2); // objeto TG + CMatriz

	CMatriz<TG> operator+(const double &op); // CMatriz + constante
	friend CMatriz<TG> operator+(const double &op1,const CMatriz<TG> &op2); // constante + CMatriz
3rd and 4th overloads conflict with 5th and 6th when TG is double. (they become the same)

What to do?


Thanks in advance.
Perhaps you've seen the other thread, it seems that today I'm Mr. Question Man