Почему __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 передаются компилятору. Я проверил, что это не так. Существуют ли другие условия, когда этот макрос недоступен?

Ответы на вопрос(3)

Ваш ответ на вопрос