Как написать функцию для замены пары #ifdef и #endif? - PullRequest
0 голосов
/ 17 января 2019

Я использую #ifdef и #endif в своем коде, например:

#include<iostream>
#define __TEST____
int main()
{
    std::cout<<"do something 1"<<std::endl;
#ifdef __TEST____

         // a 
         // lot
         // of 
         // test codes
#endif
    return 0;
}

Пары #ifdef и #endif снижают читаемость кода. Как написать функцию для замены пар #ifdef и #endif? Так же, как этот:


#include<iostream>
#define __TEST____
#define TEST(...) { #ifdef __TEST____ {__VA_ARGS__} #endif}
int main()
{
    std::cout<<"do something 1"<<std::endl;
    TEST(
         // a 
         // lot
         // of 
         // test codes
         );
    return 0;
}

1 Ответ

0 голосов
/ 17 января 2019

В C ++ (любая версия) вы можете просто изменить порядок #ifdef и #define:

#ifdef __TEST__
# define TEST(...) { __VA_ARGS__ }
#else
# define TEST(...)
#endif

int main()
{
    std::cout<<"do something 1"<<std::endl;
    TEST(
         // a 
         // lot
         // of 
         // test codes
         );
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...