Guide says使用 const std::string obj
作为具有静态存储持续时间的对象是一个坏主意,因为我们有非平凡的析构函数(它是关于静态和全局变量的)。
如果我有 path
变量(全局命名空间)并且需要以这种方式创建路径资源变量,那么创建字符串文字的最佳方法是什么 path + "nameOfFile"
(未命名的命名空间cpp 文件)?
最佳答案
规范的解决方案是使用std::string_view
:
constexpr std::string_view path{"foo"};
然后你可以使用path + "bar"
之类的东西。
作为奖励,std::string_view
的析构函数在libstdc++ (GCC) 中都是微不足道的。和 libc++ (Clang) !那是因为 std::string_view
只是一个 (ptr, count)
。这没有具体说明,但应该足以规避 Google 风格指南中不那么合乎逻辑的要求。
关于c++ - 如何按照 Google C++ 风格指南连接字符串文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58038471/