макроопределение, которое различает статическую и нестатическую функцию

Предположим, у меня есть две функции, одна статическая и одна нестатическая, как показано ниже:

#define PRINT_INFO(__FUNCTION__,...) cout<<__FUNCTION__<<__VA_ARGS__
void static fun1();
void fun2();

fun1(){
PRINT_INFO(__FUNCTION__,this)
}

fun2(){
PRINT_INFO(__FUNCTION__,this)
}

PRINT_INFO из fun1 () выдаст ошибку, так как this не может использоваться в статической функции. Есть ли способ, которым я мог бы достичь вышеупомянутого, то есть, если функция не является статичной, тогда передайте ‘this’, если она статическая, то ничего не передайте (или некоторую фиктивную строку).

Перефразируя мой вопрос: я хочу передать «this», если функция статическая, и ничего не передать, если функция не статическая. Но я не хочу проверять все функции в моем коде, а затем добавлять «это» только в нестатические.
Могу ли я динамически знать, является ли функция статической или нет?

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]