小编tas*_*war的帖子

如何创建带有前置长度字节的编译时常量字符串?

我有一些旧代码#define用来,嗯,定义一些字符串文字,例如

#define FredString "\004FRED"
Run Code Online (Sandbox Code Playgroud)

我想更新以避免使用#define. 我得到的最接近的是以下内容:

static constexpr char* FSraw= "FRED";
static constexpr char FSlen= (char)(sizeof(FSraw) - 1);
static constexpr char* FredString= FSlen FSraw;
Run Code Online (Sandbox Code Playgroud)

但编译器似乎对第三行不满意。

在编译时构造这样一个字符串的最佳方法是什么?显然我仍然可以明确地对长度进行编码,但显然,这更容易出错。

寻找 C++17 或更早版本的解决方案。

c++ string constants

1
推荐指数
1
解决办法
127
查看次数

标签 统计

c++ ×1

constants ×1

string ×1