Re[33]: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: rg45 СССР  
Дата: 27.09.25 08:03
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>
ЕМ>#define PlaceKsId(Base,End) {Base##_##End, #End}

ЕМ>struct KsIdDesc {
ЕМ>  unsigned int Id;
ЕМ>  char const * IdName;
ЕМ>};

ЕМ>KsIdDesc const KsIdTable [] = {
ЕМ>  PlaceKsId (KSPROPERTY_AUDIO, LATENCY),
ЕМ>  PlaceKsId (KSPROPERTY_AUDIO, COPY_PROTECTION),
ЕМ>  PlaceKsId (KSPROPERTY_AUDIO, CHANNEL_CONFIG),
ЕМ>...
ЕМ>};
ЕМ>

ЕМ>Это таблица преобразования индекса в стандартный идентификатор (KSPROPERTY_AUDIO_LATENCY и т.п.). У меня подобных таблиц до черта.

Бездарно и говнокодисто. Хотя бы потому, что все свои идентификаторы ты прописываешь вручную. Т.е. корректность твоей реализации полностью висит на человеческом факторе.


ЕМ>Ну попробуйте, например, это:


Удивишься, но пробовали и делали. Поищи, какое у меня количество тем, посвящённых компайл-тайм каунтерам.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 27.09.2025 8:08 rg45 . Предыдущая версия . Еще …
Отредактировано 27.09.2025 8:08 rg45 . Предыдущая версия .
Отредактировано 27.09.2025 8:06 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.