Привет! Есть структура Код (Text): typedef struct _SYSTEM_STRUCTURE { int a,b,c; bool x,y,z; } Эта структура объявлена в моем классе. Нужно макросами осуществить проверку: если структура объявлена ранее (где-то в системных хидерах), то не объявлять, а если не объявлена, то объявлять. Как такое задать компилятору? Курю #ifndef, но что-то пока не получается.
Вам нужно точно узнать в каком хидере эта структура объявляется и проверять был ли этот хидер подключен. Думаю с этим проблем не должно возникнуть.
Да в том, то и дело, что знать не могу Человек может у себя объявить структуру, может подключить системный хидер, а может мой хидер подключить. Надо как-то красивее.
Хмм, тогда придется где-нибудь в редми писать для этого человека, что твой хидер нужно подключать только после подключения системных. Решение мягко говоря некрасивое, но проблему решит.
системные хидеры обычно в гардах, типа Код (Text): #ifndef _WIN_NT_ #define _WIN_NT_ #endif // _WIN_NT_ тогда надо сделать так Код (Text): #ifndef _WIN_NT_ typedef struct _SYSTEM_STRUCTURE { int a,b,c; bool x,y,z; } #endif // _WIN_NT_