Есть ли способ выяснить, является ли текущая область глобальной функцией/статическим методом класса или методом класса?
Я думал о существовании этого, но я не могу найти метод, который не выдавал бы ошибки во время компиляции, если этого не существует.
Мне хотелось бы иметь один прототип функции, который я мог бы использовать в методе-члене или глобальной функции, но он ведет себя по-другому. Без добавления чего-либо в мои классы и без добавления дополнительных аргументов в вызов функции.
Пример:
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
Как с помощью метапрограммирования на C++ определить, находитесь ли вы в методе класса или в статической/глобальной функ ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение