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