C++ 如何连接Google C+;之后的字符串文本+;风格指南?
使用C++ 如何连接Google C+;之后的字符串文本+;风格指南?,c++,C++,使用const std::string obj作为具有静态存储持续时间的对象是个坏主意,因为我们有非平凡的析构函数(它涉及静态和全局变量)。 如果我有path变量(名称空间全局)并且需要以这种方式创建路径资源变量path+“nameOfFile”(cpp文件中未命名的名称空间),那么创建字符串文本的最佳方法是什么?规范的解决方案是使用std::string\u视图: constexpr std::string_view path{"foo"}; 然后您可以使用类似于path+“bar”的东西
const std::string obj
作为具有静态存储持续时间的对象是个坏主意,因为我们有非平凡的析构函数(它涉及静态和全局变量)。如果我有
path
变量(名称空间全局)并且需要以这种方式创建路径资源变量path+“nameOfFile”
(cpp文件中未命名的名称空间),那么创建字符串文本的最佳方法是什么?规范的解决方案是使用std::string\u视图
:
constexpr std::string_view path{"foo"};
然后您可以使用类似于path+“bar”
的东西
另外,
std::string_view
的析构函数在和中都是微不足道的!这是因为std::string\u视图
只是一个(ptr,count)
。这并没有指定,但应该足以规避谷歌风格指南中不太符合逻辑的要求。什么是path
?使用const char*
表示path
,然后使用std::string file=std::string(path)+“nameofile”代码> C样式将是“代码”>定义路径“//”/“代码”,然后是“代码>路径“某个文件”< /代码>。谷歌C++风格指南以反C++著称。我强烈建议你远离它,除非你是被迫的。@L.F:如果存储已经为本地用户丢失了,那就没用了。公平地说,让一个全局析构函数在生命周期外引用另一个全局对象是很容易的(从通常的排序细节来看),但这是谨慎使用(或避免)静态存储持续时间比其他任何东西都重要的理由。@AlexanderMordovskiy您也可以使用GSL中的一个。