Получив то, что вы хотите, вы бы много потеряли.
Visual C ++ IntelliSense основан на нескольких основных предположениях
1. что вы хотите хорошие / полезные результаты.
2. что ваш текущий IntelliSense compiland представит информацию, относящуюся к «конфигурации», в которой вы находитесь в данный момент.
Поскольку ваша текущая конфигурация имеет эту директиву препроцессора, вы не сможете получить результаты из области #ifndef.
Причина имеет смысл, если вы обдумаете это. Что если компилятор IntelliSense просто попытался скомпилировать регион, в котором вы находились, независимо от регионов #ifdef? Вы получите бессмысленный и не скомпилированный код. Он не сможет сделать головы или хвосты вашего компиляции.
Я могу представить себе очень сложное решение, в котором он выполняет меньший (новый) анализ для региона, в котором вы находитесь, и предполагается, что только этот регион является частью компиляции. Тем не менее, в этом подходе так много дыр (как будто ничего в этом регионе не объявлено / определено), что этот возможный подход сразу расстроит вас, за исключением очень очень простых сценариев.
Как правило, лучше избегать логики в областях #ifdef и вместо этого делегировать использование параметризованной компиляции целым функциям, так что интерфейс компилятора всегда компилирует эти модули, но компоновщик / оптимизатор выберет исправьте OBJ позже.
Надеюсь, это поможет,
Будет