[ACCEPTED]-Why is "array" marked as a reserved word in Visual-C++?-c++-cli

Accepted answer
Score: 66

It's not a reserved word under ISO standards. Microsoft's 5 C++/CLI defines array in the cli namespace, and Visual Studio's syntax 4 highlighting will treat it as a reserved 3 word. This usage would be considered a vendor 2 extension and not a part of any international 1 C or C++ standard.

ISO C99 Keywords:

auto        enum        restrict    unsigned
break       extern      return      void
case        float       short       volatile
char        for         signed      while
const       goto        sizeof      _Bool
continue    if          static      _Complex
default     inline      struct      _Imaginary
do          int         switch
double      long        typedef
else        register    union

ISO C++98 Keywords:

and         double          not                 this 
and_eq      dynamic_cast    not_eq              throw 
asm         else            operator            true 
auto        enum            or                  try 
bitand      explicit        or_eq               typedef 
bitor       export          private             typeid 
bool        extern          protected           typename 
break       false           public              union 
case        float           register            unsigned 
catch       for             reinterpret_cast    using 
char        friend          return              virtual 
class       goto            short               void 
compl       if              signed              volatile 
const       inline          sizeof              wchar_t 
const_cast  int             static              while 
continue    long            static_cast         xor 
default     mutable         struct              xor_eq
delete      namespace       switch     
do          new             template
Score: 10

It isn't. At least not in standard C/C++.

Now 3 you might well ask the reason "entry" was a reserved word in C in K&R but not in C99 - somebody 2 thought they might add the feature at some 1 point, but eventually decided against it.

Score: 10

It's used in C++/CLI.

Visual C++ Language Reference: "The array keyword 3 lets you create a dynamic array that is 2 allocated on the common language runtime 1 heap."

Score: 3

Visual Studio never bothered with defining 10 different C++ grammars for their pretty 9 printer. ISO C++, VC++, C++/CLI, or just 8 old C - all share the same grammar. So, names 7 like array and interface are all treated 6 as if they were keywords.

It would also be 5 quite hard for the pretty printer to spot 4 the C++ dialect used in foo.cpp. You'd need 3 to compile the code for that. Currently 2 the pretty printer can operate on tokens, which 1 means it only needs to parse the code.

Score: 1

In what edition? A Google search for "c++ reserved 2 words" shows no such usage.

I routinely 1 use "array" in sample code.


Score: 0

It is not a reserved word, but Microsoft 4 Visual Studio decided to mark it blue as 3 if it were a reserved word, but it most 2 definitely is not according to "C++ Programming 1 5th Edition" by D.D. Malik.

Score: 0

The fact that a word's being highlighted 3 in MSVC doesn't mean that it's a C or C++ keyword. As 2 you can see, it also highlights many non-standard 1 things like __int64, or even __int128 although there's no 128-bit int type in MSVC.

More Related questions