我有一个老式的接口函数,经过一些重构,我需要返回它原来的
const char*
指针,不应该删除。
函数如下所示:
const char* func()
{
...
return "Some string literal that contains some value to be moved out: VALUE";
}
我需要将 VALUE 移到外面并像这样在 return 语句中使用它(组合 2 个字符串):
constexpr auto MY_VALUE = "VALUE";
const char* func()
{
...
static const std::string msg = "Some string literal that contains some value to be moved out: " + MY_VALUE;
return msg.c_str();
}
但是我不喜欢这个静态变量
是否有另一种更好的方法来组合两个在编译时已知的字符串文字?
另一种方法,不一定更好,
#define
:
#define MY_VALUE "VALUE"
const char* func()
{
return "Some string literal that contains some value to be moved out: " MY_VALUE;
}