Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/10/2014, 09:17
alexpglez98
 
Fecha de Ingreso: octubre-2014
Mensajes: 23
Antigüedad: 9 años, 6 meses
Puntos: 0
Pregunta Hacer que el parámetro de la plantilla no sea un objeto

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 original
  1. template<class T>
  2. class Myclass {
  3. public:
  4. template<typename T_1>
  5. Myclass<int> operator * (T_1);
  6.  
  7. template<typename T_1>
  8. Myclass<int> operator * (const Myclass<T_1> &);
  9. }
  10.  
  11. // Siendo E, D y C objetos Myclass esto es ambiguo
  12. D=C*E;
  13.  
  14. // Mientras que esto no es ambiguo
  15. 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