Datentyp herausfinden
-
Hallo,
ich frage mich ob es in C++ möglich ist den aktuellen Datentyp einer Variable herauszufinden?
Also in etwa
if(a == double) //...Es wäre für ein Template vorteilhaft.
-
DerkleineBert schrieb:
Es wäre für ein Template vorteilhaft.
Eher nicht. Wozu?
-
Google mal nach RTTI (Runtime type information oder sowas). Damit sind gewisse Dinge moeglich.
Allerdings ist es nicht so maechtig wie Reflection in anderen Sprachen. Deswegen wird dein vorhaben wohl eher nicht gehen.
Wozu brauchst du es denn?
-
icarus2 schrieb:
Google mal nach RTTI (Runtime type information oder sowas). Damit sind gewisse Dinge moeglich.
Allerdings ist es nicht so maechtig wie Reflection in anderen Sprachen. Deswegen wird dein vorhaben wohl eher nicht gehen.
Wozu brauchst du es denn?
Ja, ich hatte schon befürchtet das ohne Reflection nichts läuft.
Es geht um ein Template. Ich müsste für jeden Datentypen eine Template Spezialisierung machen, was dank nicht vorhandener Vererbung lästig ist. Ich wollte in einer Methode prüfen um was für einen Datentypen es sich bei T handelt.
-
Guck dir mal std::is_same an.

Bzw. am besten den ganzen <type_traits> header. http://en.cppreference.com/w/cpp/types
-
In C++11 müsste etwas wie
static if(std::is_same<decltype(a), double>::value) { // ... }gehen.
-
seldon schrieb:
In C++11 müsste etwas wie
static if(std::is_same<decltype(a), double>::value) { // ... }gehen.
Es gibt kein static if in C++11...
-
Überladung/Spezialisierung?
-
cooky451 schrieb:
Guck dir mal std::is_same an.

Bzw. am besten den ganzen <type_traits> header. http://en.cppreference.com/w/cpp/typesLol, C++11 wird mir immer sympathischer. Danke!

-
static_if schrieb:
Es gibt kein static if in C++11...
Ah, da bin ich aber böse durcheinander gekommen. Du hast natürlich recht.