![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| semibug |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
В продолжение темы, какими инструментами лучше воспользоваться для предварительного анализа кода?
К примеру поставив такую задачу выполняться перед сборкой, можно застраховаться от некоторых проблем. В этом конкретном случае проверка должна заключаться в поиске знака "=" в пределах блока, обозначенного фигурными скобками, предваренного заданным идентификатором (именем перечисления), в указанном файле. Сразу на ум приходят регулярные выражения. Наверняка есть какие либо готовые системы такой статической проверки исходного кода? |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
semibug, я так понимаю Вы примеры не смотрели..
вот вам упрощенная вырезка для допиливания под нужды :
http://liveworkspace.org/code/0aa33cd6c94f...dc91a54e75a689b преимущество в том что енум можно "доопредялять", но хочу предупредить что подход с автоматической енумерацией подходит лишь когда команды не покидают пределов приложения.. для взаимосвязи двух приложений лучше не надеетья на автоматическое перечисление.. |
|||
|
||||
| semibug |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 323 Регистрация: 27.3.2009 Репутация: нет Всего: нет |
mes, не только смотрел, но и пробовал использовать, благодарю за помощь.
К сожалению ни вариант с фабрикой, ни с генерацией по XML не одобрил руководитель проекта, с мотивацией "излишние сущности", т.е. в нашем случае остались классические перечисления enum, с явным комментарием, как и предлагал bsa. |
|||
|
||||
| math64 |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Можно с помощью макросов - но, возможно, тоже скажут "излишние сущности", но иногда полезно
Сообщения компилятора:
(к сожалению, компилятор не выдаёт в сообщении об ощибке повторяющееся значение - строка одна и та же, поскольку используется макрос. Вывод программы после исправления ошибки:
|
||||||
|
|||||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Тоже самое можно сделать без #undef:
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |