C ++, как узнать, является ли функция членом или не членом. Другими словами доступен указатель "this" - PullRequest
0 голосов
/ 04 апреля 2020

Задача состоит в том, что мне нужен макрос, который выводит указатель "this".

#DEFINE thisOutput \
std::stringstream ss; \
ss << static_cast<const void *>(this); \
std::cout << ss.str(); \

Но использование этого макроса в функции, не являющейся членом, приводит к ошибке компиляции

error : недопустимое использование 'this' в функции, не являющейся членом

Как изменить этот макрос, чтобы определить, является ли функция членом или функцией, не являющейся членом, и выполнять свою работу или нет?

Добавление: шаблонная специализация также может быть решением.

...