gpt4 book ai didi

c++ - 根据 Google C++ 风格指南初始化静态字符串(C 类型或 std::string)

转载 作者:行者123 更新时间:2023-11-27 23:53:30 26 4
gpt4 key购买 nike

根据 Google C++ Style Guide ,“静态和全局变量”部分声称:“因此,我们只允许静态变量包含 POD 数据。此规则完全不允许 std::vector(改为使用 C 数组),或 string(使用 const char [])。”假设我的程序需要一些静态字符串,这些字符串存储在配置文件中并将在运行时加载。那么如何将字符串加载到 const char[] 中呢?

最佳答案

忽略 Google 的 C++ 风格指南的优点,您可能会将其存储在 const char* 变量中,该变量通过动态分配获取其指针:

static const char *my_static_string = nullptr;

...

void load_static_string()
{
if(!my_static_string)
{
std::string str = //Read string from file.
my_static_string = new char[str.size() + 1];
strncpy(my_static_string, str.data(), str.size() + 1);
}
}

关于c++ - 根据 Google C++ 风格指南初始化静态字符串(C 类型或 std::string),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44402718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com