Как с помощью метапрограммирования на C++ определить, находитесь ли вы в методе класса или в статической/глобальной функC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как с помощью метапрограммирования на C++ определить, находитесь ли вы в методе класса или в статической/глобальной функ

Сообщение Anonymous »

Есть ли способ выяснить, является ли текущая область глобальной функцией/статическим методом класса или методом класса?
Я думал о существовании этого, но я не могу найти метод, который не выдавал бы ошибки во время компиляции, если этого не существует.
Мне хотелось бы иметь один прототип функции, который я мог бы использовать в методе-члене или глобальной функции, но он ведет себя по-другому. Без добавления чего-либо в мои классы и без добавления дополнительных аргументов в вызов функции.
Пример:
class NormalClass
{
public:
void foo(int a, bool b)
{
DEBUG("print from class %d %d\n", a, b);
}
};

void normal_function()
{
DEBUG("print from a normal function");
}

Распечатка
Class: print from class 1, 2
Global: print from a normal function


Подробнее здесь: https://stackoverflow.com/questions/791 ... s-method-o
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»