Имя: Пароль:
IT
 
Вопрос к знатокам Си++ (Си)
0 Кирпич
 
25.12.15
09:54
вот в файле от 1с такое написано

enum AppCapabilities
{
    eAppCapabilitiesInvalid = -1,
    eAppCapabilities1 = 1,
    eAppCapabilitiesLast = eAppCapabilities1,
};

Вопрос: А что значит запятая в конце "eAppCapabilitiesLast = eAppCapabilities1," ?
1 Маратыч
 
25.12.15
09:56
(0) А оно точно работает? :) Первый раз такое вижу, по идее, это ошибка синтаксиса.
2 Кирпич
 
25.12.15
09:57
(1) работает
3 Маратыч
 
25.12.15
10:01
А, нашел: http://stackoverflow.com/questions/6372650/trailing-commas-and-c

В общем, игнорируется запятая последняя.
4 Кирпич
 
25.12.15
10:03
(3) я то думал там что-то умное. нафиг её вообще писать тогда.
5 Маратыч
 
25.12.15
10:03
+(3) Why does C++09 permit a final trailing comma? Many enumerations are machine-generated. It's easier and simpler to generate an enum declaration where every enumerator has a trailing comma. Because the trailing comma has no significance in C++ (it doesn't change the semantics of the enumerator or the enumeration), C++09 now accepts trailing commas after the final enumerator.

Т.е. для удобства добавлено в случае автоматически генерируемых перечислений.
6 Кирпич
 
25.12.15
10:05
(5) "для удобства добавлено в случае автоматически генерируемых перечислений."
теперь понятно, почему в Си всё так запутано и всего так много. потому что добавляли кому что хочется :)
7 Фрэнки
 
25.12.15
10:06
некритичная ошибка синтаксиса.
Сам стиль того, что именованный нумератор закрывается идентификатором с суффиксом Last намекает на то, что предполагается контроль за состоянием списка значений в программном коде.

Вообще, списки именованных значений нужны только для удобства написания кода. Тем более, когда часть кода может генериться в процедурах прекомпиляции в разных платформенных инструментах, наподобие рапиды какой-нибудь
8 Фрэнки
 
25.12.15
10:09
(6) это не в самом Си запутано. Запутано в приложениях, его использующих, которые создаются с учетом возможного полиморфизма, инкапсуляций и всего прочего
9 Кирпич
 
25.12.15
10:11
(8) да и фиг с ним. выяснили и слава богу.
Закон Брукера: Даже маленькая практика стоит большой теории.