Используйте #ifdefs и #define, чтобы при желании превратить вызов функции в комментарий - PullRequest
14 голосов
/ 13 февраля 2009

Можно ли сделать что-то подобное

#ifdef SOMETHING
#define foo //
#else
#define foo MyFunction
#endif

Идея состоит в том, что если SOMETHING определен, то вызовы foo (...) становятся комментариями (или чем-то, что не оценивается и не компилируется), в противном случае это становится вызовом MyFunction.

Я видел, как использовался __noop, но я не верю, что смогу это использовать.

EDIT (ы):

Я не думаю, что смогу действительно использовать здесь макрос, потому что MyFunction принимает переменное количество аргументов.

Кроме того, я бы хотел, чтобы аргументы НЕ оценивались! (Таким образом, выполнение таких действий, как комментирование тела MyFunction, на самом деле не дает мне того, что мне нужно, поскольку аргументы все равно будут оцениваться)

Ответы [ 11 ]

0 голосов
/ 13 февраля 2009

Если я правильно помню, вы должны иметь возможность # определять свой макрос как "ничто", и это заставит компилятор игнорировать этот вызов

#define foo()

foo();    // this will be ignored
...