- 1
- 2
- 3
- 4
objbase.h:
#define __STRUCT__ struct
#define interface __STRUCT__
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+42
objbase.h:
#define __STRUCT__ struct
#define interface __STRUCT__
спасибо Микрософт за счастливое детство соответствие стандарту при засирании глобального неймспейса своими больными фантазиями
Сделали бы тогда
__tarasb
Стандарт не запрещает засирать глобальный неймспейс, особенно при начинании идентификатора с __
Другое дело, что они создали какой-то не правильный interface - это да, за это их нужно наказать.
я несколько расстроился, обнаружив, что моё struct interface { ... };, отлично работающее под г++, под студией отказалось компилироваться с непонятной ошибкой - interface ведь не ключевое слово с++
это тяжкое наследие СОМ
и кстати если сделать #undef, то ломается всё, что с СОМ у них связано
> struct interface { ... };
ЧТДНТ.
Элсо interface в будущих стандартах может стать ключевым словом. Не стоит вносить возможную несовместимость.
текущая несовместимость с гениальными макросами студии уже вынудила меня переименовать структуру, описывающую состояние сетевого интерфейса
а ключевым словом может стать всё, что угодно - думаю, отныне стоит называть типы, переменные и члены класса как на всякий случай
собственно, если не пользоваться одновременно каким-нибудь COM, то проблемы нет
но в целом проблема актуальна, т.к.
по крайней мере iface (ты попал в точку с новым именем структуры) не напряг капризный g++
Только засрали глобальный неймспейс, да ввели в заблуждение людей, которым приходится раскуривать что же такое interface, которого нет в стандарте.
Спасибо кэп. Вы удачно доебались до формулировки и открыли нам глаза.
Это как-то отменяет тот факт, что данный бесполезный макрос, не подчиняющийся привычным соглашениям по именованию, засирает собой все крестоблядские неймспейсы, а раздефайнить его внутри своих хедеров нельзя, потому что это приведет к нежелательной зависимости результата от порядка включения хедеров?