Как проверить, можно ли использовать __PRETTY_FUNCTION__?

..... / PluginLoader.h: 34: множественное определение 'Dummy_Func_For_Generating_FUNCTION_NAME_Macro ()'

Вышеупомянутая ошибка выводится для кода ниже. Я включил охранников в свое дело. А все остальное компилируется нормально.

РЕДАКТИРОВАТЬ: Я пытался проверить, определено ли __ PRETTY_FUNCTION __ , и если это так, используйте его позже в коде с помощью макроса FUNCTION_NAME (для ведения журнала). Если __ PRETTY_FUNCTION __ не определено, используйте следующий лучший вариант и так далее. Однако полученные ответы заставили меня понять, что это невозможно. Итак, если __ PRETTY_FUNCTION __ и все остальные не являются макросами, что это такое? И как мне проверить, есть ли один из них в определенной реализации?

    void Dummy_Func_For_Generating_FUNCTION_NAME_Macro()
    {
#ifndef FUNCTION_NAME
    #ifdef __PRETTY_FUNCTION__
        #define FUNCTION_NAME __PRETTY_FUNCTION__
    #elif __FUNCTION__
        #define FUNCTION_NAME __FUNCTION__
    #elif __func__
        #define FUNCTION_NAME __func__
    #else
        #define FUNCTION_NAME ""
    #endif
#endif
    }
6
задан Brian Tompsett - 汤莱恩 18 June 2016 в 19:09
поделиться