Есть ли какой-нибудь способ определить, под какими дефайнами находится код?
Например, если есть что-то такое:
#ifndef X
void foo( bool b)
{
#if (Y == Z)
baz(); <=== здесь хочется получить что-то вроде "ifndef X && (Y == Z)"
#endif
}
#else
void foo()
{
bar(); <=== а здесь "!ifndef X"
}
#endif
Задача похожа на поиск парных скобок, и без автоматизации жутко раздражает.