Код-прелюдия, генерируемый компилятором

Компилятор генерирует кое-какой код, который добавляется в каждый исходный файл. Этот код содержит информацию о самом компиляторе и о том, с каким опциями он запущен.

Пример такого кода:

namespace compiler
{
auto& version = "0.9";
auto& git_revision = "0000000000000000000000000000000000000000";
var size_type generation = 1s;
namespace options
{
var char8 optimization_level = '0';
var bool generate_debug_info = false;
auto& cpu_name = "";
var tup[  ] features[  ];
}
namespace target
{
auto& str = "x86_64-unknown-linux-gnu";
auto& arch = "x86_64";
auto& vendor = "unknown";
auto& os = "linux";
auto& environment = "gnu";
auto& os_and_environment = "linux-gnu";
var bool is_big_endian = false;
}
}

Данную информацию можно использовать на своё усмотрение - например, реализуя код различным образом в зависимости от архитектуры/операционной системы.