Est-il possible en C++ définir un type qui est assez grand pour contenir au plus un nombre spécifique, probablement à l'aide de quelques petits malins de code de modèle. Par exemple: je veux être en mesure d'écrire :-
Integer<10000>::type dataItem;
Et d'avoir ce type de résoudre au plus petit type qui est assez grand pour contenir la valeur spécifiée?
Contexte: j'ai besoin de générer de la variable définitions à l'aide d'un script à partir d'un fichier de données externe. Je suppose que j'ai pu faire le script de regarder les valeurs et ensuite utiliser uint8_t
, uint16_t
, uint32_t
, etc. en fonction de la valeur, mais il semble plus élégant pour construire la taille dans l'généré le code C++.
Je ne vois pas de toute façon de faire d'un modèle qui peut faire cela, mais en sachant que les modèles C++, je suis sûr qu'il ya un moyen. Des idées?