Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-03-2012
waremovil waremovil is offline
Miembro
 
Registrado: ago 2007
Ubicación: Zaragoza
Posts: 78
Poder: 17
waremovil Va por buen camino
template typename falla

Hola compañeros, vengo de nuevo con problemas, esta vez más relacionados con c++ estándar.

Estoy intentando utilizar la característica de templates. Tengo la siguiente función:

Código:
        template <typename T>
        int valida( T value, int var2 )
        {
                if( typeid(T) == typeid(int))
                {
                    if( value < var2 )
                    {
                         ...
                    }    
        }
    }
Esto me salta en tiempo de compilación y me dice textualmente:
Código:
[BCC32 Error] E2094 'operator<' not implemented in type 'string' for arguments of type 'int'
¿Por qué me interpreta "value" como un string si es de tipo indefinido (template) ?? ¿qué hago mal?

1000gracias
__________________
http://www.qdsSoftware.com
Responder Con Cita
  #2  
Antiguo 08-03-2012
waremovil waremovil is offline
Miembro
 
Registrado: ago 2007
Ubicación: Zaragoza
Posts: 78
Poder: 17
waremovil Va por buen camino
He recibido dos respuestas del post a mi correo, sin embargo esas respuestas no están en el foro... ¿se trata de un caso de poltergeist foril?
__________________
http://www.qdsSoftware.com
Responder Con Cita
  #3  
Antiguo 08-03-2012
waremovil waremovil is offline
Miembro
 
Registrado: ago 2007
Ubicación: Zaragoza
Posts: 78
Poder: 17
waremovil Va por buen camino
Al parecer ya tengo la solución a mi problema, aunque no la entiendo.

Como hacía llamadas a esa función dentro de la propia clase, me la interpretaba directamente como de tipo "string"

tan sólo he tenido que separar el método "validar" (que me daba igual que fuera estático) en una clase a parte
y ahora no da ningún problema

en fín... ya se sabe, la brujería de la programación
__________________
http://www.qdsSoftware.com
Responder Con Cita
  #4  
Antiguo 08-03-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por waremovil Ver Mensaje
He recibido dos respuestas del post a mi correo, sin embargo esas respuestas no están en el foro... ¿se trata de un caso de poltergeist foril?
No debería hacerse eso, ¿son respuestas de usuarios de clubdelphi?, serán novatos y seguramente no saben cómo funcionan unos foros.
Responder Con Cita
  #5  
Antiguo 08-03-2012
waremovil waremovil is offline
Miembro
 
Registrado: ago 2007
Ubicación: Zaragoza
Posts: 78
Poder: 17
waremovil Va por buen camino
sí algo así será
__________________
http://www.qdsSoftware.com
Responder Con Cita
  #6  
Antiguo 08-03-2012
waremovil waremovil is offline
Miembro
 
Registrado: ago 2007
Ubicación: Zaragoza
Posts: 78
Poder: 17
waremovil Va por buen camino
Por cierto, respecto a los templates, ya tengo el problema. Yo estaba usando comparaciones tratando por igual strings, ints, floats, dates etc... y en tiempo de compilación entra, pero en linkado, como es lógico, no lo acepta

he tenido que hacer una especialización parcial, algo así como una sobrecarga de template,
de modo que quede una función para int,float,date y otra distinta para string

gracias de todas formas

salu2
__________________
http://www.qdsSoftware.com
Responder Con Cita
  #7  
Antiguo 08-03-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Yo estaba usando comparaciones tratando por igual strings, ints, floats, dates etc... y en tiempo de compilación entra, pero en linkado, como es lógico, no lo acepta
Hola waremovil.

Realmente no entiendo tu planteo, precisamente el beneficio de template es que permite utilizar el mismo código con diferentes tipos de datos.

Por ejemplo, la función min, así declarada:
Código:
template<typename T>

T min(T x, T y)
{
  return(x < y) ? x : y;
}
Nos permite hacer:
Código:
{
AnsiString s1="Pedro", s2="Ana";
int i1=51, i2= 33;
char c1='X', c2='F';
...
 min(s1, s2);
 min(i1, i2);
 min(c1, c2);
 ...
Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 08-03-2012 a las 17:12:29.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Template de Proyectos PaFernan99 Varios 9 16-09-2008 14:37:08
Template & Ajax Rony Díaz PHP 6 19-12-2007 14:44:30
Delphi for PHP Template Rony Díaz PHP 2 10-07-2007 16:07:39
Ayuda con las "Template" de BDS 2006 Jesús Pena Varios 2 18-04-2007 13:58:18
Como hacer uso de asp en un template de intraweb? JoelCarlos Internet 0 01-09-2005 18:11:46


La franja horaria es GMT +2. Ahora son las 02:01:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi