G++ 4.5.x -включить + __BASE_FILE__ нелогичное поведение?

Посмотрите эту постоянную ссылку Wandbox или MWE ниже для подробностей. Короче говоря - когда я насильно #include заголовочный файл, который использует __BASE_FILE__ используя GCC -include я получаю <command-line> для расширения __BASE_FILE__ вместо фактического базового файла, указанного в командной строке GCC. Это ошибка? Ограничение комбинации этих двух функций? Непонимание чего-то с моей стороны?

prog.cc:

struct S
{
    int i;
    S(): i(0) {}
} s;

int main(void)
{
    return 0;
}

test.hh:

#ifndef TEST_HEADER
#define TEST_HEADER
#include <cstdio>
struct Test
{
    Test()
    {
        std::printf("%s\n", __BASE_FILE__);
    }
} test;
#endif

командная строка компилятора: g++ prog.cc -Wall -Wextra -std=gnu++0x -включить test.hh

фактический выход:

<command-line>

ожидаемый результат:

prog.cc

0 ответов

Другие вопросы по тегам