我正在尝试连接两个编译时字符串:
constexpr const char* getString1() { return "abababa"; };
constexpr const char* getString2() { return "lalalal"; };
constexpr const char* getString3() { return getString1() + getString2(); }; //wont compile
在C ++中有一种现代的,简单的方法吗?
答案 0 :(得分:1)
在C ++中有一种现代的,简单的方法吗?
最终答案是:
使用constexpr
函数在编译时无法实现此目的。
return getString1() + getString2();
会尝试添加两个指针,这对编译器没有意义。
任何其他尝试都需要检查用于连接的实际字符文字(例如strcat()
),这在编译时无法完成。
可用的替代方法是使用注释中指出的宏。
也许有人能够做一些黑巫毒模板魔术,但我怀疑它是否值得付出努力。