День добрый,
Понадобилось перечислить все _T("x"), их содержимое в проэкте (т.е. x), название функции где используется, файл и строка.
#pragma message и __FUNCTION__ вроде удовлетворяют потребностям.
Меняем макрос _T.
#undef _T
#define sharpsign #
#define JOIN(x, y) DO_JOIN(x, y)
#define DO_JOIN(x, y) x##y
#define _T(x) __T(x) \
JOIN(sharpsign, pragma) message("HelloWorldMessage--"__FUNCTION__"--") // тут еще x надол вывести, но это....
Но #pragma работает только с новой строки, а макрос раскрывается в одну строку.
ВОПРОС: А как сделать перевод каретки в макросе?
Я так понял что это невозможно.
Пробовал через template
что то типа
template <typename FN> class mcc
{
public:
static int ll()
{
#pragma message("HelloWorldFromClass--"__FUNCTION__)
return NULL;
}
};
...
// где то в коде
void MyClass::func()
{
mcc<int>::ll();
}
Только вот беда, __FUNCTION__ выдает mcc<int>::ll, а не MyClass::func::mcc<int>::ll.
Как быть, как перечислить все с названиеями функция где оно используется?
Сенкс