Sobrecargando un operador me di cuenta que en las plantillas también funcionan con objetos. Quiero decir, estas funciones son ambiguas:
Código C++:
Ver originaltemplate<class T>
class Myclass {
public:
template<typename T_1>
Myclass<int> operator * (T_1);
template<typename T_1>
Myclass<int> operator * (const Myclass<T_1> &);
}
// Siendo E, D y C objetos Myclass esto es ambiguo
D=C*E;
// Mientras que esto no es ambiguo
D=C*4;
Mi duda sería cómo limitar a la plantilla para que no acepte objetos. (Si se puedo esto sería una posible solución)
O en caso de que no se pueda, si se puede hacer una única función. Y con un if dentro para cada versión de la función, leyendo algun identificador del tipo de dato.¿?
Muchas Gracias de antemano