Hi,
vielleicht kennt ja jemand dafür eine Lösung:
Ich habe folgende Klassenkombination:
1 | class A;
|
2 |
|
3 | template<class T> class B : A
|
4 | {
|
5 | public:
|
6 | explizit B(T& v);
|
7 | }
|
B ist eine Art containerobjekt, dem man eine Variable übergibt.
an anderer Stelle werden Variablen angelegt
1 | uint32_t u1;
|
2 | float32_t f1;
|
Nun soll mit diesen ein Objekt vom typ B angelegt werden:
-> geht leider nicht, da das Template fehlt.
was geht ist:
1 | A* pa = new B<uint32_t>(u1);
|
was mich hierbei stört ist, dass der Typ von u1 an verschiedenen Stellen
im Code erforderlich ist -> Fehleranfälligkeit bei Änderungen.
Was ich suche ist so etwas wie:
1 | A* pa = new B<typeof(u1)>(u1);
|
dann könnte man auch ein Makro anlegen
1 | #define BOBJ(v) B<typeof(v)>(v)
|
hat jemand eine Idee, wie das zu bewerkstelligen wäre.
Ach so: ich benutze VS 2005
Gruß,
Vlad