Если вы не против добавления небольшого количества текста во включаемый файл, вы можете сделать dsl.txt
примерно таким:
BOOST_METAPARSE_STRING(r"//(
DSL content
)//");
А затем:
using input =
#include "dsl.txt"
(Предполагается, что вы используете версию C ++, которая содержит необработанные строки. В противном случае, это намного раздражает.)
Вы можете добавить первую и последнюю строки с помощью простой команды оболочки, если хотите.
Это не идеально, но поскольку BOOST_METAPARSE_STRING
, кажется, требует строкового литерала, я не думаю, что есть лучший вариант.
С другой стороны, если вы обнаружите, что используете приемлемый внешний препроцессор, совсем не трудно написать тот, который создает вызов шаблона metaparse::string
из текстового файла. Вам не нужно ограничивать себя препроцессором C ++. Любой инструмент сборки позволит вам использовать пользовательский шаг сборки; даже сначала скомпилируйте ваш препроцессор для предварительной обработки текстового файла.