Gibt es eine Möglichkeit etwas wie dies in C++ zu erreichen:Template-Funktion: durchführt Umwandlung basierend auf Typnamen
template<typename T>
T function()
{
std::string result = getRes();
// if (type == string)
return result;
// else if (type == numeric)
return std::stoul(result, nullptr);
}
das Ergebnis Variablentyp (in diesem Fall string) ist immer bekannt Angenommen. Der Rückgabetyp wird durch die Vorlage in dem Funktionsaufruf, z.B .: definiert
int x = function<int>();
Ich weiß, dass es Dinge gibt, wie std::is_integral
oder std::is_same
. Mit diesen Funktionen konnte ich den Typ von T bestimmen. Es scheint jedoch nicht zu funktionieren, da es während der Kompilierzeit nicht ausgewertet werden kann und daher der Compiler Fehler auslöst.
Sie können einen 'stringstream' verwenden. – mch
Sie könnten 'if constexpr (blah) {blah}' verwenden, aber der Stringstream ist wahrscheinlich besser. – HolyBlackCat
Die Stringstream-Lösung scheint zu funktionieren, danke. Willst du eine Antwort schreiben, damit ich sie annehmen kann? – CatPlusPlus