从组合两个字符串文字的函数返回 const char*

问题描述 投票:0回答:1

我有一个老式的接口函数,经过一些重构,我需要返回它原来的

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();
}

但是我不喜欢这个静态变量

是否有另一种更好的方法来组合两个在编译时已知的字符串文字?

c++ string-literals
1个回答
3
投票

另一种方法,不一定更好,

#define

#define MY_VALUE "VALUE"

const char* func()
{
    return "Some string literal that contains some value to be moved out: " MY_VALUE;
}
© www.soinside.com 2019 - 2024. All rights reserved.