【问题标题】:C++ Compile-Time string manipulationC++ 编译时字符串操作
【发布时间】:2011-04-12 16:58:49
【问题描述】:

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

【问题讨论】:

    标签: c++ boost metaprogramming


    【解决方案1】:

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

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

    【讨论】:

    • 是否可以保证在编译时处理用户定义的文字?我一直认为我们受制于优化器。
    • 问题是它们至少以一种易于编写和可维护的方式传递给程序,也就是说,你不必写'a','b','c',...
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-28
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-21
      相关资源
      最近更新 更多