Hallo,
ich denke, mein Problem erklärt sich von selbst an folgendem Code:
1 | template<typename TPort>
|
2 | class Led:
|
3 | {
|
4 | public:
|
5 | enum LedNr
|
6 | {
|
7 | LED0 = 0x01,
|
8 | LED1 = 0x02,
|
9 | LED2 = 0x04
|
10 | }
|
11 |
|
12 | void turnOn(uint8);
|
13 | };
|
14 |
|
15 |
|
16 | Led<PortA> led;
|
17 | led.turnOn(Led::LED0); // wäre hübsch und logisch, funktioniert aber nicht
|
18 | led.turnOn(Led<PortX>::LED0; // funktioniert, ist aber nicht hübsch
|
Ich möchte also von außerhalb auf die Enumeration zugreifen, ohne den
Templateparameter anzugeben, weil ich den an anderen Stellen im Programm
gar nicht wissen will. LedNr gehört logisch zu Led, darum will ich die
Enumeration ungern ausgliedern. Zwar kann ich auch bei jedem Zugriff
einen beliebigen (gültigen) Parameter angeben, aber das wäre auch
hässlich.
Wie lässt sich dieses Problem elegant lösen?
Dankesehr schonmal.