$ Zeichen im source
-
hi
ist das $-zeichen ein gueltiges fuer variablenbenennung ?
bin grad ueber einen sourcecode gestolpert, wo alle variablen einer klasse mit $ beginnenclass blub { public: int $counter; std::string $message; };also VC nimmt es ohne probleme. aber ist das vom standard her ok ?
Meep Meep
-
Nein, das ist ein reines M$ Feature.
-
Das ist kein reines MSVC-Feature; viele alte C-Compiler (unter anderem auch gcc, wenn auch nicht auf allen Plattformen) erlauben das. Vom Standard gedeckt ist es indes nicht.
-
Es ist lustig, dass das gerade hier auftaucht!
Hatte mir vorhin Gedanken darüber gemacht, ob es nicht lustig wäre, $ als "const&" zu interpretieren. Ich denke, wenn ich mal über meine Quellen parsen würde, habe ich einige tausend mal "const&" da stehen, welche die Zeilen einfach nur zumüllen. Mal davon ab, dass die Tasten 'c', 'o', 'n', 's' und 't' statistisch früher aus den Latschen gehen.
Schlechte Idee?
-
decimad schrieb:
Es ist lustig, dass das gerade hier auftaucht!
Hatte mir vorhin Gedanken darüber gemacht, ob es nicht lustig wäre, $ als "const&" zu interpretieren. Ich denke, wenn ich mal über meine Quellen parsen würde, habe ich einige tausend mal "const&" da stehen, welche die Zeilen einfach nur zumüllen. Mal davon ab, dass die Tasten 'c', 'o', 'n', 's' und 't' statistisch früher aus den Latschen gehen.
Schlechte Idee?Wenn es Dir um die Abnutzung der Tasten geht, empfehle ich Bezeichner auf 2 Zeichen zu beschränken und Einrückung zu vermeiden, damit die Leertaste nicht kaputt geht
. Ansonsten stimme ich Dir zu: das ist eine schlechte Idee.
-
decimad schrieb:
Hatte mir vorhin Gedanken darüber gemacht, ob es nicht lustig wäre, $ als "const&" zu interpretieren. Ich denke, wenn ich mal über meine Quellen parsen würde, habe ich einige tausend mal "const&" da stehen, welche die Zeilen einfach nur zumüllen. Mal davon ab, dass die Tasten 'c', 'o', 'n', 's' und 't' statistisch früher aus den Latschen gehen.
Schlechte Idee?template<class T> using cr = const T&;Es reduziert von 7 auf 4 zeichen. Alternativ kannst du auch irgendein anderes Zeichen nehmen.
-
Weshalb? Ich möchte mich jetzt nicht darauf versteifen, dass es das "$" sein muss, aber const& habe kommt echt oft in so ziemlich jedem Source vor, da hat man schon für seltenere Konstrukte eine Syntaxverschönerung eingeführt. Für jede Reference-To-Const wird die Zeile um 6 Zeichen länger und der Mensch liest es als 2 Tokens, statt einem zusammengehörenden...
-
na gut, hast gewonnen. Ich würde aber statt $ % oder %% nehmen, denn wenn viele Codes das Dollarzeichen als Bezeichner enthalten, würde man diese ungültig machen, außerdem sieht $ zu sehr nach S aus.
-
Da es keine Anstalten gibt, eine ABI für C++ einzuführen, könnte man sogar soweit gehen, dass dieses fiktive "$" als by-value oder by-const interpretiert werden darf und es sich der compiler auf Basis des Typs alleine aussuchen darf (damit jede CU zum gleichen Ergebnis kommt, oder aber aufgeweicht bei whole program optimization)... Nächstes Problem für Templates erschlagen...
-
Hrmm, wobei das führt bei forward-Deklarationen zu Problemen... hrmmm