C ++ Компиляция во время компиляции - PullRequest
5 голосов
/ 15 сентября 2010

Я посмотрел на mpl :: string в boost, но, похоже, нет простого способа преобразования строковых литералов в формат mpl :: string, основанный на одинарных кавычках Я пытаюсь создать во время компиляции реализацию XML простых структур данных с использованием строк времени компиляции. Я стремлюсь, чтобы макросы сами генерировали структуры и вставляли в них постоянное «мета» поле, содержащее указанную строку XML.

Ответы [ 2 ]

3 голосов
/ 16 сентября 2010

Короткий ответ - нет, простого пути нет. По крайней мере, не используя только C ++, а во время компиляции. Вы можете использовать скрипты или другой генератор кода для получения mpl::string с правильными литералами. C ++ 0x принесет пользовательские литералы [1], которые позволяют легко манипулировать литералами, символ за символом, например, с помощью шаблонов с переменными числами.

  1. http://en.wikipedia.org/wiki/C%2B%2B0x#User-defined_literals
0 голосов
/ 06 декабря 2012

Вот статья по теме: http://akrzemi1.wordpress.com/2011/05/11/parsing-strings-at-compile-time-part-i/. Автор реализует простой арифметический калькулятор RPN, который работает во время компиляции с использованием строковых литералов пользователя и constexpr. Я не буду пытаться представить здесь краткое содержание статьи.

...