| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > typedef enum :: имя по значению? |
| Автор: Usya 6.2.2009, 18:55 | ||
| Здравствуйте. Есть код, что-то вроде:
Возможно ли определить имя по значению? Делать строковый массив и по индексу возвращать значения - не вариант: типов несколько, да и имена возможно могут со временем измениться и тогда надо будет переопределять массив (причем об этом еще и вспомнить потом надо). Переменные описаны в другом модуле (ях), хотя это не принципиально. Заранее благодарен. |
| Автор: SenkraD 6.2.2009, 19:02 | ||
| Usya, нет. А, вообще, зачем такой изврат? - это уже кривое решение по определению
От этого вообще нет защиты, кроме контракта между девелоперами |
| Автор: EvilsInterrupt 6.2.2009, 19:29 |
| Usya, В Дельфи можно через RTTI , может и в С++ также ) |
| Автор: SenkraD 7.2.2009, 00:03 |
| EvilsInterrupt, нельзя это через RTTI сделать так, как компилятор транслирует его как макрос (хотя могу ошибатся) Чуть не к теме, но иногда из-за этого страдают на sizeof'ав |
| Автор: Usya 7.2.2009, 00:43 |
| SenkraD Ответ простой: допустим мне нужно сформировать отчет, в котором в ячейки необходимо вставить вместо значений соответствующие имена. EvilsInterrupt +1 mes Переменные для моей задачи определены в другом модуле, так что приходится работать с тем, что есть и дублировать их в том или ином виде не хочется. Если бы задача была разовой, то это одно дело, а если прогу необходимо будет со временем модифицировать, то это прямая дорога к глюкам - нужно будет держать в голове где и что дублируется. Были бы модули мои - там бы можно было и похозяйничать. Пару ссылок думаю окажутся полезными: http://www.rsdn.ru/Forum/Message.aspx?mid=292629&only=1 и http://it.huij.net/html/Borland_jishushequ/C___Builder/20061019/21930.html Всем спасибо! |
| Автор: Usya 7.2.2009, 01:04 | ||
| P.s. Забыл добавить: если класс уже определен, то все гораздо упрощается и получается что-то вроде
Взял отсюда http://bcdev.narod.ru/Code.htm, хотя это не единственная копия. Где оригинал, не знаю, да и в данном случае не столь важно |
| Автор: Usya 9.2.2009, 19:18 | ||||
| Господа, я нашел косяк в работе приведенных в ссылках алгоритмах, хотя возможно он и в TypInfo.hpp. Для вот такого примера
все будет работать на ура, а в таком уже
будет лажа со сдвигом на единицу, т.е. на двойку (t=two) будет выводиться трояк (three). Не исключаю, что я мог что-то не то сделать, но все-таки это похоже на косяк :( Надеюсь будет полезно знать тем, кто с этим столкнется, поэтому и дописал. |
| Автор: EvilsInterrupt 9.2.2009, 19:45 | ||
я думал "Usya" следует читать как "Ася" и грешным делом подумал что ты ... |
| Автор: Usya 10.2.2009, 16:23 | ||
EvilsInterrupt
Ну рассмешил А Усей меня племянник назвал, когда еще только учился разговаривать! P/s Хотя это к теме и не относится. |