Есть ли способ прочитать содержимое необработанного строкового литерала C ++ из файла, отличного от C / C ++? - PullRequest
0 голосов
/ 31 октября 2018

Есть ли способ прочитать содержимое необработанного строкового литерала C ++ из файла, не относящегося к C / C ++ (во время компиляции - т.е. сделать его жестко запрограммированным в результирующий модуль?

C ++ имеет хорошие необработанные строковые литералы, например

const char* const cstring = 
R"myheredoc(
       do ;*!$%@#
       whatever 
       you want here
)myheredoc";

Однако есть ли способ прочитать содержимое необработанной строки из файла, отличного от C ++ (например, пример файла конфигурации).

Я могу представить, что это можно сделать с помощью системы сборки, просто хочу знать, что я ничего не упустил из замечательных новых функций C ++.

1 Ответ

0 голосов
/ 31 октября 2018

В настоящее время C ++ не имеет возможности сделать это, если не полагаться на препроцессор и систему сборки.

Хотя вы могли бы выполнить это с помощью автоматически сгенерированного заголовочного / исходного файла, который #include редактируется препроцессором, это несколько печальное положение дел. Таким образом, в настоящее время есть статья в полете для C ++ 20, предлагающая метко названный std::embed. Это позволит делать то, что вам нужно, в значительной степени, если за него проголосуют в стандарте C ++. Так что следите за обновлениями.

...