| Autor |
Nachricht |
Enumerator
Unregistrierter
|
Enumerator Unregistrierter
17:14:26 13.05.2012 Titel: |
enum class Problem |
Zitieren |
Hi, ich habe meinen ganzen enums jetzt zu enum classes abgeändert und natürlich läuft das ganze jetzt nicht mehr. Z.B. folgender Code:
| Code: | enum class Color : int
{
Black = 0,
...
White = 15
}; | |
| Code: | void MyFunction(Color color)
{
if ((color & ~Color::White) != Color::Black)
... | |
IntelliSense: expression must have integral or unscoped enum type
error C2678: binary '~' : no operator found which takes a left-hand operand of type 'Color' (or there is no acceptable conversion)
Wie kann ich dieses Problem am besten lösen? |
|
|
|
 |
314159265358979
Mitglied
Benutzerprofil
Anmeldungsdatum: 09.03.2010
Beiträge: 4658
|
314159265358979 Mitglied
17:31:48 13.05.2012 Titel: |
|
Zitieren |
Indem du die Operatoren für dein enum definierst. |
|
|
|
 |
Unregistrierter
|
Unregistrierter
19:35:47 13.05.2012 Titel: |
|
Zitieren |
| 314159265358979 schrieb: | | Indem du die Operatoren für dein enum definierst. |
Er könnte aber auch explizit casten, wenn er sowieso schon auf Ganzzahl-basis damit rechnen will... |
|
|
|
 |
314159265358979
Mitglied
Benutzerprofil
Anmeldungsdatum: 09.03.2010
Beiträge: 4658
|
314159265358979 Mitglied
19:40:30 13.05.2012 Titel: |
|
Zitieren |
Jo klar, mal eben im Code an jeder Stelle refactoren... |
|
|
|
 |
Unregistrierter
|
Unregistrierter
21:15:44 13.05.2012 Titel: |
|
Zitieren |
| 314159265358979 schrieb: | | Jo klar, mal eben im Code an jeder Stelle refactoren... |
Dann stellt sich die Frage, wozu dieser ganze "streng-typisiertes enum" quatsch (Edit) hier gut ist, wenn es eh nur Ärger bringt... |
Zuletzt bearbeitet von Unregistrierter am 21:24:43 13.05.2012, insgesamt 1-mal bearbeitet |
|
 |
314159265358979
Mitglied
Benutzerprofil
Anmeldungsdatum: 09.03.2010
Beiträge: 4658
|
314159265358979 Mitglied
21:19:05 13.05.2012 Titel: |
|
Zitieren |
Denk doch mal nach du Depp |
|
|
|
 |
Enumerator2
Unregistrierter
|
Enumerator2 Unregistrierter
21:21:46 13.05.2012 Titel: |
|
Zitieren |
| 314159265358979 schrieb: | | Jo klar, mal eben im Code an jeder Stelle refactoren... | Für jedes popelige enum die ganzen Operatoren zu definieren ist aber auch nicht besser. |
|
|
|
 |
Unregistrierter
|
Unregistrierter
21:23:31 13.05.2012 Titel: |
|
Zitieren |
| 314159265358979 schrieb: | Denk doch mal nach du Depp  |
Hab ich ja. Ich hab nachgedacht, was herausgefunden und es dann geschrieben
Es ist nicht überall besser. |
|
|
|
 |
314159265358979
Mitglied
Benutzerprofil
Anmeldungsdatum: 09.03.2010
Beiträge: 4658
|
314159265358979 Mitglied
22:02:15 13.05.2012 Titel: |
|
Zitieren |
| Enumerator2 schrieb: | | Für jedes popelige enum die ganzen Operatoren zu definieren ist aber auch nicht besser. |
Ist ja auch nicht so, als ob sich das durch ein simples Makro vereinfachen liese.
| Hacker schrieb: | Hab ich ja. Ich hab nachgedacht, was herausgefunden und es dann geschrieben
Es ist nicht überall besser. |
Niemad hat gesagt, dass man jetzt jedes enum durch ein enum class ersetzen soll. DA liegt der Fehler. |
|
|
|
 |
Unregistrierter
|
Unregistrierter
22:50:17 13.05.2012 Titel: |
|
Zitieren |
| 314159265358979 schrieb: |
Niemad hat gesagt, dass man jetzt jedes enum durch ein enum class ersetzen soll. DA liegt der Fehler. |
Genau.
@TE: Wieso hast du überhaupt deine ganzen Enumerationen zu streng-typisierten geändert? |
|
|
|
 |
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
|
|
|
|
|