Wie kann ich den Wert einer Variablen in einer Funktionsvorlage zurückgeben, die jeden Typ annehmen kann?Gibt den Wert einer Variablen vom Typ X mit einer Funktionsvorlage zurück
Zum Beispiel gehe ich davon folgende Funktion haben:
template<typename T>
size_t func(T const&) {
return sizeof(T);
}
Es jede Art annehmen kann wie int
, unsigned int
, BSTR
und long
und Größe des Typs zurück.
Aber Ich mag den Wert der Variablen eines beliebigen Typs erhalten wie:
template<typename T, valueof typename>
X func(T const&) {
// << return valueof(T) OR return typeid(T).value OR WHATELSE??? >>
}
Zum Beispiel habe ich oben benötigen Hello World!
zurückzukehren, wenn ich es wie func<BSTR>("Hello World!")
verwenden. Ich benötige oben, um 123456
zurückzugeben, wenn ich es wie func<int>(123456)
verwende.
Ich weiß bereits, wie man den Namen des variablen Typs unter Verwendung typeid(T).name()
erhält, aber nicht weiß, wie man Wert einer Variablen erhält, die einen T
Typ hat.
Vielen Dank im Voraus.
Ich dachte auch, dass @ Rons Lösung unten ist das, was Sie brauchen. Wenn nicht, haben Sie Ihr Problem grob unterbewertet. – StoryTeller
@StoryTeller unterspezifiziert gemeint? – GTAVLover
Bedeutet, Sie haben überhaupt nicht erklärt, was Sie wollen. "Ich will' X' für 'foo (X)' "bittet um eine offensichtliche Lösung. – StoryTeller