c++-schlüsselwörter ...
-
ich halt schrieb:
- mutable
nicht oft, aber wenn es noetig ist, dann ist es wunderbar
- auto
- registergibt keinen grund diese zu verwenden
- wchar_t
nuetzlich wenn man mehr als nur die paar ASCII Zeichen unterestuetzen will
- explicit
essentiell. viele klassen sollten explizite ctors haben
- throw
essentiell. sonst waere exception handling ja nicht moeglich
- typename
bei templates essentiell
-
net schrieb:
ich halt schrieb:
- mutable
können die wenigsten compiler was mit anfangen
1996 ist vorbei
-
net schrieb:
ich halt schrieb:
- auto
ist veraltet, kannste weglassen
Wofür wurde es denn früher gebraucht, wenn es heute veraltet ist?
-
cd9000 schrieb:
net schrieb:
ich halt schrieb:
- auto
ist veraltet, kannste weglassen
Wofür wurde es denn früher gebraucht, wenn es heute veraltet ist?
vielleicht um deutlich zu machen, dass es sich um eine unheimlich flüchtige variable handelt? gegenteil von static? egal. das benutzt keiner.
-
net schrieb:
vielleicht um deutlich zu machen, dass es sich um eine unheimlich flüchtige variable handelt? gegenteil von static? egal. das benutzt keiner.
Die Bedeutung kenn ich.
Mich interessiert nur, wenn es heute veraltet ist, wofür wurde es dann früher verwendet?
-
cd9000 schrieb:
Mich interessiert nur, wenn es heute veraltet ist, wofür wurde es dann früher verwendet?
da kann ich dir leider nicht weiter helfen. aber guck' mal in irgendeine alte k&r-ausgabe. irgendwas werden die sich dabei schon gedacht haben.
-
auto kommt IIRC aus dem C-Vorgänger BCPL, jedenfalls gab es in standardisiertem C/C++ noch nie einen Grund, es zu verwenden.
-
vielleicht bekommt auto aber mit dem nächsten standard einen neuen sinn:
auto var=/* hier unheimlich komplexes expression template einsetzen/* //zb in boost::spirit auto var=i|j>>k;//i,j,k sind vom typ rule<>, das ganze ergibt einen typ wie composition<alternative<rule<>,rule<> >,rule<> > //möglichkeit die bisher existiert(compiler erweiterung?) typeof(i|j>>k) var=i|j>>k;
-
In B (einer der beiden Vorgänger von C) gab es keine Datentypen, da hat man nur die Speicherklasse angegeben:
auto a; /* ein 36bit-Wort namens a auf dem Stack */ register b; a = 42; /* ist es ein integer? */ a = a + 'abcd' /* ist es ein char? (char-Literale bestehen aus 4 9-bit Zeichen) */ b = *a; /* huch dereferenzieren kann ichs auch wenn ich will, könnte aber abstürzen, ich weiß nicht ob der Rechner auf dem das lief sowas krummgenommen hat */
-
Und zu sowas ist c++ abwärtskompatibel?
-
Bashar schrieb:
auto a; register b;
geht in c heute noch, aber da sind es immer 'int'
gcc schluckt's als c, aber nicht als c++
-
net schrieb:
Bashar schrieb:
auto a; register b;
geht in c heute noch
In C89 nicht aber in C99.