Записать в файл во время компиляции в C ++? - PullRequest
1 голос
/ 30 марта 2020

Я занимался метапрограммированием на C ++, и у меня был следующий код:

main. cpp

#include <ofstream>
int main() {
    // not allowed
    constexpr {
        ofstream foo("foo.asm");
        foo << "incq   %rax\n";
        foo.close();
    }

    __asm(
        #include "foo.asm"
    );
}

foo.asm

        movw   $255, %ax
        movw   $1137, %bx
        addb   %bl, %al\n
        adcb   %bh, %ah

Is Можно ли записать в этот файл во время компиляции?

1 Ответ

4 голосов
/ 30 марта 2020

Нет.

Однако большинство систем сборки позволяют выполнять любой код, который вы хотите, прямо перед тем, как они скомпилируют файл, на самом деле это не метапрограммирование, но это может решить вашу проблему.

...