c++ - 如何按照 Google C++ 风格指南连接字符串文字?

标签 c++

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/

相关文章:

c++ - 如何在不覆盖 CXX 变量的情况下强制 gcc 找到自己的 c++ 头文件?

c++ - Value Printed 根据其后的指令而变化

c++ - 如果我按值从函数返回一个 STL 容器,GCC 会单独复制所有元素吗?

c++ - 我正在编写一个非常简单的字母评分系统,if 语句是否最有效?

c++ - 当一个函数接受对另一个函数的转发引用时,使用 std::forward 调用该函数有何影响

c++ - Qt : Avoid Rebuilding Applications incase strings change

c++ - 为什么我的程序有一个 "Vector Subscript out of Range"的实例?

c++ - 程序在不使用数组的情况下查找 5 个数字中的最大和最小

如果不包含函数列表,C++ 程序将无法编译

c++ - 使用 std::cout 一次而不是多次显示相同数量的数据是否更有效?