Почему __FUNCTION__ не определен?
У меня есть библиотека C ++, которая использует предопределенный макрос__FUNCTION__
, в виде crtdefs.h. Макрос задокументированВот, Вот мое использование:
my.cpp
#include <crtdefs.h>
...
void f()
{
L(__FUNCTIONW__ L" : A diagnostic message");
}
static void L(const wchar_t* format, ...)
{
const size_t BUFFERLENGTH = 1024;
wchar_t buf[BUFFERLENGTH] = { 0 };
va_list args;
va_start(args, format);
int count = _vsnwprintf_s(buf, BUFFERLENGTH, _TRUNCATE, format, args);
va_end(args);
if (count != 0)
{
OutputDebugString(buf);
}
}
crtdefs.h
#define __FUNCTIONW__ _STR2WSTR(__FUNCTION__)
Библиотека (которая скомпилирована как статическая библиотека, если это имеет значение) используется другим проектом в том же решении, приложением WPF, написанным на C #.
Когда я компилирую библиотеку, я получаю эту ошибку:
идентификатор "L__FUNCTION__" не определен.
Согласно документации, макрос не раскрывается, если / P или / EP передаются компилятору. Я проверил, что это не так. Существуют ли другие условия, когда этот макрос недоступен?