在编译时将两个字符串与C ++ 11组合的最简单方法

时间:2016-10-14 13:05:52

标签: c++

我正在尝试连接两个编译时字符串:

constexpr const char* getString1() { return "abababa"; };
constexpr const char* getString2() { return "lalalal"; };
constexpr const char* getString3() { return getString1() + getString2(); }; //wont compile

在C ++中有一种现代的,简单的方法吗?

1 个答案:

答案 0 :(得分:1)

  

在C ++中有一种现代的,简单的方法吗?

最终答案是:

使用constexpr函数在编译时无法实现此目的。

 return getString1() + getString2();

会尝试添加两个指针,这对编译器没有意义。

任何其他尝试都需要检查用于连接的实际字符文字(例如strcat()),这在编译时无法完成。

可用的替代方法是使用注释中指出的宏。

也许有人能够做一些黑巫毒模板魔术,但我怀疑它是否值得付出努力。