Neues C++ Schlüsselwort ?
-
net schrieb:
gute idee! ich würde es aber eher 'foe' taufen.
schau auf struppis homepage. da erläutert der recht ausführlich, warum man sich auf "~friend" einigte. es tun sich die c++-leute sehr schwer damit tun, neue schlüsselwörter einzuführen, weil bestehende code kaputtgeht. welches strategiespiel oder welcher first-person-shooter hat denn nicht enemy als normalen variablennamen rumgammeln? und foo auch.
deswegen schreibt man ~friend statt enemy und jeder bisher korrekte code ist immernoch korrekt. !friend hätte den vorteil gehabt, daß man auch not friend schreiben kann, aber ~ wurde genommen, weil man bei destruktoren auch ~ nimmt. so merkt man es sich besser.
aber es ist schon wieder vom tisch. weil es für die compilerbauer recht einfach ist und für programmierer, die es nicht nehmen wollen, gar keinen einfluss hat, stand dem ~friend nichts schlimmes entgegen. aber es hat sich schnell ergeben, daß man alle effekte von ~friend mit friend und compilezeitnegierung über SFINAE "Substitution Failure Is Not An Error" auch erzeugen konnte.
-
volkard schrieb:
oder welcher first-person-shooter hat denn nicht enemy als normalen variablennamen rumgammeln? und foo auch.
nicht foo, foe
-
volkard schrieb:
net schrieb:
gute idee! ich würde es aber eher 'foe' taufen.
schau auf struppis homepage. da erläutert der recht ausführlich, warum man sich auf "~friend" einigte. es tun sich die c++-leute sehr schwer damit tun, neue schlüsselwörter einzuführen, weil bestehende code kaputtgeht. welches strategiespiel oder welcher first-person-shooter hat denn nicht enemy als normalen variablennamen rumgammeln? und foo auch.
deswegen schreibt man ~friend statt enemy und jeder bisher korrekte code ist immernoch korrekt. !friend hätte den vorteil gehabt, daß man auch not friend schreiben kann, aber ~ wurde genommen, weil man bei destruktoren auch ~ nimmt. so merkt man es sich besser.
aber es ist schon wieder vom tisch. weil es für die compilerbauer recht einfach ist und für programmierer, die es nicht nehmen wollen, gar keinen einfluss hat, stand dem ~friend nichts schlimmes entgegen. aber es hat sich schnell ergeben, daß man alle effekte von ~friend mit friend und compilezeitnegierung über SFINAE "Substitution Failure Is Not An Error" auch erzeugen konnte.Und dann kann man immer noch !~friend schreiben
-
Ich hoffe nur, dass es man hier endlich konsequent regex in die sprache einbaut. Schliesslich schreit ~friend ja danach.
class MyClass { ~friend /(C|T)[A-Z_].*/; };
um so mal effektiv die
CObject oder TObject Leute auszusperren.
-
äh, April April!?
-
Wieso? Ich find die Vorschläge interessant.
-
Michael E. schrieb:
Wieso? Ich find die Vorschläge interessant.
-
Hehe, wie war das noch mit dem Kopierdestruktor...?
-
Stimmt, der war auch cool.
-
Walli schrieb:
Hehe, wie war das noch mit dem Kopierdestruktor...?
praktisch. löscht gleich alle kind-objekte wech, wenn das eltern-objekt deleted wird. tjä, es fehlt noch viel in c++