Почему “массив” отмечен как зарезервированное слово в Visual C++?

Ошибка анализа: синтаксическая ошибка, неожиданный T_PAAMAYIM_NEKUDOTAYIM

Оператор разрешения области также называется «Paamayim Nekudotayim» с иврита פעמיים נקודתיים. это означает «двойная двоеточие» или «двойная точка дважды».

Эта ошибка обычно возникает, если вы случайно поместите :: в свой код.

Вопросы, относящиеся:

Документация:

34
задан Deduplicator 9 March 2015 в 14:26
поделиться

5 ответов

Это не зарезервированное слово в соответствии со стандартами ISO. Microsoft C++ / CLI определяет массив в cli пространство имен , и подсветка синтаксиса Visual Studio будет рассматривать его как зарезервированное слово. Это использование считали бы расширением поставщика и не частью любого международного C или стандарта C++.

Ключевые слова ISO C99 :

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

C++ ISO 98 Ключевых слов:

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
65
ответ дан 11 revs, 3 users 78% 27 November 2019 в 16:15
поделиться

Это не. По крайней мере, не в стандартном C/C++.

Теперь Вы могли бы хорошо просить, чтобы причиной "запись" было зарезервированное слово в C в K& R, но не в C99 - кто-то думал, что они могли бы добавить опцию в какой-то момент, но в конечном счете отклонили ее.

11
ответ дан Community 27 November 2019 в 16:15
поделиться

Это используется в C++ / CLI.

Ссылка Языка Visual C++: "Ключевое слово массива позволяет Вам создать динамический массив, который выделяется на "куче" общеязыковой среды выполнения".

10
ответ дан jeffm 27 November 2019 в 16:15
поделиться

Visual Studio никогда не беспокоилась определением различных грамматик C++ для их симпатичного принтера. ISO C++, VC ++, C++ / CLI или просто старый C - вся доля та же грамматика. Так, имена как массив и интерфейс все рассматривают, как будто они были ключевыми словами.

симпатичному принтеру также было бы довольно трудно определить диалект C++, используемый в foo.cpp. Необходимо было бы скомпилировать код для этого. В настоящее время симпатичный принтер может воздействовать на маркеры, что означает, что он только должен проанализировать код.

2
ответ дан MSalters 27 November 2019 в 16:15
поделиться

В какой выпуск? Поиск Google "зарезервированных слов C++" не показывает такого использования.

я обычно использую "массив" в примере кода.

http://cs.smu.ca/~porter/csc/ref/cpp_keywords.html

1
ответ дан warren 27 November 2019 в 16:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: