Problem(chen) mit | Verknüpfen
-
Ähm ich hab dan problemchen
und zwar:
wenn ich als parameter zwei parameter mit | verknüpf und dann mit & schauen will obs verknüpft ist meckert der compiler
vieleicht sagt der code mehr... enum Mode { fett=1, kursiv=2, unterstrichen=4 }; void foo(int i,Mode m) { for(int u=i;u>0;u--) { if(m&fett) cout<<"Fett"<<endl; if(m&kursiv) cout<<"Kursiv"<<endl; if(m&unterstrichen) cout<<"Unterstrichen"<<endl; } } int main() { foo(5,fett|unterstrichen); return(0); } ...Der Compiler behaupet dass er Parameter 2 nicht von 'int' nach 'Mode' konvertieren kann
Brauch dringend HILFE!!!

-
Du musst den Wert explizit konvertieren:
foo(5, static_cast<Mode>(fett | unterstrichen); // oder als function-style cast: foo(5, Mode(fett | unterstrichen);
-
Schön funktioniert!

Aber warum funktioniert das dann ohne explizit zu konvertieren bei zum Beispiel bei fstream::open

-
nimm doch sofort int als parameter
void foo(int i,int m);
-
anon schrieb:
nimm doch sofort int als parameter
void foo(int i,int m);Genau, strenge Typisierung ist für Loser.