Comment puis-je renvoyer la valeur d'une variable dans un modèle de fonction pouvant accepter tous les types?Renvoie la valeur d'une variable de type X à l'aide d'un modèle de fonction
Par exemple, supposons que je suit la fonction:
template<typename T>
size_t func(T const&) {
return sizeof(T);
}
Il peut accepter tout type comme int
, unsigned int
, BSTR
et long
et retourner la taille de type.
Mais je tiens à obtenir la valeur de la variable de tout type comme:
template<typename T, valueof typename>
X func(T const&) {
// << return valueof(T) OR return typeid(T).value OR WHATELSE??? >>
}
Par exemple, j'ai besoin ci-dessus pour revenir Hello World!
quand je l'utilise comme func<BSTR>("Hello World!")
. J'ai besoin ci-dessus pour retourner 123456
quand je l'utilise comme func<int>(123456)
.
Je sais déjà comment obtenir le nom du type de variable en utilisant typeid(T).name()
, mais je ne sais pas comment obtenir la valeur d'une variable qui a un type T
.
Merci d'avance.
moi aussi je pensais que @ le soufflet de solution de Ron est ce que vous avez besoin. Si ce n'est pas, votre grossièrement sous-spécifié votre problème. – StoryTeller
@StoryTeller sous-spécifié signifiait? – GTAVLover
Vous n'avez pas expliqué ce que vous voulez bien du tout. "Je veux' X' pour 'foo (X)' "demande une solution évidente. – StoryTeller