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> Código:
[BCC32 Error] E2094 'operator<' not implemented in type 'string' for arguments of type 'int' 1000gracias |
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? :)
|
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 |
Cita:
|
sí algo así será
|
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 |
Cita:
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> Código:
{ |
Hola de nuevo.
A menos que quieras evaluar, dentro de la función, el tipo de los argumentos por que existe una operación que no puede ser aplicada a determinado tipo, en ese caso: Código:
#include<typeinfo.h> |
Hola, hasta donde he podido comprobar eso no es cierto cuando los operadores no son compatibles
por ejemplo Código:
template <typename T> pero si en alguna parte del código llamas a la función definiéndola como "string" entonces tendrás errores en tiempo de linkado porque string no acepta el operador ">" la solución que he hecho es una pequeña sobrecarga del template, uno para todos los tipos simples y otra para string Yo también pensaba como tú , pero el compilador me lo tira cuando linko :( |
Hola waremovil.
Basándome en la función de tu mensaje, hice esta prueba y ejecuta correctamente: Código:
template <typename T> Un saludo. |
hola ecfisa, a mi también me intriga... mañana hago la prueba y salimos de dudas
yo uso Codegear RAD Studio XE un saludo |
La franja horaria es GMT +2. Ahora son las 16:30:45. |
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