C ++ Compile-Time字符串操作

时间:2010-09-15 13:48:03

标签: c++ boost metaprogramming

我查看了boost的mpl :: string,但似乎没有一种简单的方法可以将字符串文字转换为基于单引号整数的mpl :: string格式。我想要做的是在编译时使用编译时字符串生成一些简单数据结构的XML实现。我正在努力让宏自己生成结构并在其中插入一个包含所述XML字符串的常量“meta”字段。

2 个答案:

答案 0 :(得分:3)

简短的回答是否定的,没有简单的方法。至少在编译时不单独使用C ++。您可以使用脚本或其他代码生成器生成具有正确文字的mpl::string。 C ++ 0x将带来用户定义的文字[1],允许逐个字符地轻松操作文字,例如,使用可变参数模板。

  1. http://en.wikipedia.org/wiki/C%2B%2B0x#User-defined_literals

答案 1 :(得分:0)

以下是关于该主题的文章:http://akrzemi1.wordpress.com/2011/05/11/parsing-strings-at-compile-time-part-i/。作者使用用户字符串文字和constexpr实现了一个简单的RPN算术计算器,它在编译时工作。我不打算在这里提供更多文章摘要。