![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Emura |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 7.2.2009 Репутация: нет Всего: 1 |
привет!
поведайте как можно проверить допустимость комбинации флагов. чтобы понять о чем речь вот код:
это реально на vs2005 ? Это сообщение отредактировал(а) Emura - 18.10.2010, 18:06 |
|||
|
||||
| triclosan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 18.8.2006 Репутация: 1 Всего: 12 |
чего?
|
|||
|
||||
| Emura |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 7.2.2009 Репутация: нет Всего: 1 |
чего чего?
что не понятно? в коде в виде комментариев суть проблемы. в коде в тысячи строк описанная ошибка отлавливается не легко. хотелось бы заранее избежать. Это сообщение отредактировал(а) Emura - 18.10.2010, 18:06 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
проверять только в ручную..
|
|||
|
||||
| Emura |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 7.2.2009 Репутация: нет Всего: 1 |
в ручную замучаешься.. вот в Qt сделали же как-то
http://doc.qt.nokia.com/4.7-snapshot/qflags.html параграф Detailed Description нашел направление куда двигаться в исходниках Qt, дело за малым Это сообщение отредактировал(а) Emura - 18.10.2010, 22:04 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
это смотря как ) прежде всего, приведенные Вами выше, енумы не являются битовыми флагами, так например 10 это уже сочетание 2 | 8 или у вас подразумевалось 0x10, тогда так и писать надо.. вот тестовый пример с проверкой
как видите вручную перебирать все флаги не надо, достаточно определить только валидную маску.. не стоит забывать о том, что в Qt есть moc, который расширяет возможности С++.. |
|||
|
||||
| Emura |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 102 Регистрация: 7.2.2009 Репутация: нет Всего: 1 |
mes, спасибо за внимание к теме.
требовалась жесткая привязка к енуму, даже если значения совпадают, но элемент из другого енума - должно быть предупреждение, а в этом случае, как понимаю, маска не поможет.
верно, совсем недавно узнал что у них есть этот moc. хорошо что QFlags он "не расширяет" а решение задачи оказалось проще чем предполагал, всего лишь правильный шаблон + перегрузка оперетора | и у нас в руках typesafe flags! Это сообщение отредактировал(а) Emura - 19.10.2010, 01:42 |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
так пойдет?
Это сообщение отредактировал(а) azesmcar - 19.10.2010, 08:22 |
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
как то не вяжется ваши выводы с постановкой вопроса ... Вы спрашивали не о безопасном шаблоне, а о допустимости комбинации флагов, переданных как uint.. |
||||
|
|||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
с учетом последнего сообщения тс, думаю что нет Это сообщение отредактировал(а) mes - 19.10.2010, 08:59 |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
||||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
сорри.. опять я не в ту степь поехал.. внимание акцептировалось только на остальное как то пролетело.. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |