【问题标题】:c++ alternative to macro for compile-time string literal concatenationc++ 替代宏用于编译时字符串文字连接
【发布时间】:2013-02-06 10:40:47
【问题描述】:

我想在编译时连接多个字符串文字:

#include <iostream>

#define VAR0 "var0 text"
#define VAR1 "var1 text"
#define VAR2 "var2 text"

static const char* concat = "var0:" VAR0 " var1:" VAR1 " var2:" VAR2 ;

int main(int argc, char *argv[])
{
    std::cout << concat << std::endl;
    return(0);
}

这一切都很好,但我宁愿使用常量表达式而不是宏。在 C++ 03 中是否有任何简单的方法可以做到这一点?

【问题讨论】:

  • @icepack:感谢您的链接。不幸的是,可能的重复被标记为 C++11。它从可变参数模板的前提开始。我正在寻找 C++03 解决方案。

标签: c++ c++03


【解决方案1】:

只能连接文字。在 C++03 中无法连接通用常量 char 数组表达式。但是,可以将奇怪的模板可憎 boost::mpl::stringBoost.MPL 连接起来

【讨论】:

    猜你喜欢
    • 2013-06-25
    • 2021-11-18
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 2010-12-18
    • 2013-09-05
    • 2017-08-27
    相关资源
    最近更新 更多