La logique du résultat est cependant visible. Même float->double est explicable. Je tronquerais encore plus le nombre de types de sortie. En ce sens, ENUM_DATATYPE semble trop large.
Je ne vois aucune logique à décrire explicitement l'énumérateur ENUM_DATATYPE dans la documentation et chaque membre a son propre numéro. Je ne vois pas non plus de logique à regarder la taille en octets des types float et double.
Alexey Kozitsyn: Je ne vois pas la logique quand la documentation décrit explicitement l'énumérateur ENUM_DATATYPE et que chaque membre a son propre numéro. Je ne vois pas non plus la logique de regarder la taille en octets des types float et double.
Eh bien, je ne laisserais que les types entiers (int) et "réels" (double) - des nombres.
fxsaber: Eh bien, je ne laisserais que les types int et double - des nombres.
L'exemple le plus simple : selon votre logique, une variable est de type int. Vous créez une variable de ce type. Vous voulez écrire valeur = 2 ici. Mais en fait le type était bool. Que faire alors ?
Alexey Kozitsyn: L'exemple le plus simple : Vous avez obtenu une variable de type int par votre logique. Vous créez une variable de ce type. Vous voulez écrire valeur = 2 ici. Mais la valeur est en fait un bool. Que faire alors ?
La logique du résultat est cependant visible. Même float->double est explicable. Je tronquerais encore plus le nombre de types de sortie. En ce sens, ENUM_DATATYPE semble trop large.
Je ne vois pas la logique quand la documentation décrit explicitement l'énumérateur ENUM_DATATYPE et que chaque membre a son propre numéro. Je ne vois pas non plus la logique de regarder la taille en octets des types float et double.
Eh bien, je ne laisserais que les types int et double - des nombres.
L'exemple le plus simple : Vous avez obtenu une variable de type int par votre logique. Vous créez une variable de ce type. Vous voulez écrire valeur = 2 ici. Mais la valeur est en fait un bool. Que faire alors ?
void OnStart()
{
f(2);
}
void OnStart()
{
f(2);
}
Bien, mais vous allez travailler avec une valeur de 1. Il y aura beaucoup d'erreurs difficiles à trouver.
Il n'y aura pas d'erreurs. Tu ne peux même pas les inventer.
Ce n'est pas parce que tu ne peux pas faire quelque chose que ça ne peut pas être. Attendons la réponse de la SD.
class A { public:
A( const T * ) {} //Error: 'T' - unexpected token
};
class B {};
void OnStart()
{
A<const B> a( new B );
}