bug#59216: CC Mode 5.35.2 (C++//l); Incorrect fontification of "static key_map *key_map"
Po Lu via CC-Mode-help <[email protected]> Sun, 13 Nov 2022 08:29:41 +0800
| Newsgroups | gmane.emacs.cc-mode.general |
|---|---|
| Message-ID | <[email protected]> |
Alan Mackenzie <[email protected]> writes: > Hello, Po. > > On Sat, Nov 12, 2022 at 21:09:31 +0800, Po Lu via CC-Mode-help wrote: >> Package: cc-mode > >> Go to src/haiku_support.cc. Around line 171, there will be: > >> /* The keymap, or NULL if it has not been initialized. */ >> static key_map *key_map; > >> the variable name will be fontified as a type! > > Er, that's the variable name the same as the type name. Is that valid > C++? I always thought that types and variables shared a name space. > > What am I missing, here? Here's what the internet says: According to the C++ standard, declaring a variable with the same name as a type is correct code in general, but invalid code within a class definition. The class case is specific, because names declared in a class definition are visible within the whole class definition, before and after the point of declaration of that name. In other scopes (global, namespace, function, ...) declared names are visible only after the point of declaration.