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

How can I concatenate string literals following Google C++ Style Guide?

本文关键字:连接 字符串 文字 何按照 Google C++ 风格      更新时间:2023-10-16

指南说使用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 风格指南中不太合乎逻辑的要求。