operator"" _GROSS reserviert?
-
Ist
int operator "" _GROSS(long long);erlaubt oder ist dieser Bezeichner reserviert?
-
Ist reserviert. Denk z.B. an Präprozessor-Makros in der Standardlibrary.
-
Darum einfach Mal abgewöhnen _Großbuchstabe oder __kleinbuchstabe im global namespace zu nutzen, das ist schließlich grundsätzlich reserviert. Sehe eh nicht den Sinn.
Edit: Ups, hab das nicht als Suffix verstanden, dann könnte alles anders sein, siehe nächster Post.
-
Da gibt es im Standard einen Abschnitt über reservierte Bezeichner für suffixe:
17.6.4.3.5 User-defined literal suffixes [usrlit.suffix]
1 Literal suffix identifiers that do not start with an underscore are reserved for future standardization.Heißt der bezeichner müsste einen Unterstrich gefolgt von einem Kleinbuchstaben in einem nicht-globalen namespace haben.
Oder habe ich da etwas falsch verstanden?
-
17.6.4.3.2 Global names
Certain sets of names and function signatures are always reserved to the implementation:
— Each name that contains a double underscore _ _ or begins with an underscore followed by an uppercase letter (2.12) is reserved to the implementation for any use.
— Each name that begins with an underscore is reserved to the implementation for use as a name in the global namespace
-
Lustig ist ja, dass z.B.
1234_GROSSnichts mit dem der Identifier
_GROSSzu tun hat.Es scheitert nur an der Deklaration
operator"" _GROSS. Das mit dem Makro ist leider einleuchtend. Danke an euch.