tipo de plantilla de fundición

Intento hacer una plantilla que escriba conversiones y recibí un error al compilar el siguiente programa.

#include<iostream.h>
#include<conio.h>
template<typename T,typename U>
T mycast(U u)
{
 return (T)u;
}
int main()
{
 double d= 10.6577;
 int j= mycast<int>(d) ;
 return 0;
}

por favor dime dónde está el problema y cómo superarlo. Gracias

preguntado el 09 de enero de 11 a las 10:01

¿Y cuál es el mensaje de error que recibe? -

dice, esperado en la línea 3, es decir, plantilla -

Ese maldito error misterioso que todos parecen tener. Odio esa maldita cosa. Es como si alguien a lo largo de la línea estuviera tratando de mantenernos a todos completamente ignorantes para que sea casi imposible ayudar. -

-1 por preguntar acerca de un mensaje de error del compilador sin indicar qué compilador y cuál es el mensaje de error exacto. -

2 Respuestas

Si elimino el #include <iostream.h> (porque debería ser #include <iostream>, pero no es necesario de todos modos), luego se compila bien (en VS 2010).

Respondido el 09 de enero de 11 a las 13:01

Estoy usando el viejo compilador turbo C ++ 3.0, así que está bien. Atul

@Atul: luego cambie a un compilador mejor (y más nuevo). - Prasoon Saurav

@Atul: es un compilador preestándar. Actualícelo inmediatamente. - Yakov Galka

@ prasoon y ybungalobill. ooh sí, está funcionando bien en VC ++. net 2005 - Atul

it says , expected at line 3 i.e template<typename T,typename U> 

Atul intenta cambiar

int j= mycast<int>(d) ;

a

int j= mycast<int,double>(d) ;

PD: Creo que necesitas actualizar tu compilador :).

Respondido el 09 de enero de 11 a las 13:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.