小编Ven*_*ana的帖子

为什么 std::string 不可轻易破坏?

我是一个 C++ 菜鸟,我一直在阅读有关琐碎可破坏性的文章。

这篇关于平凡可破坏性的文章中,

普通可破坏类型包括标量类型、普通复制构造类和此类类型的数组。

普通可破坏类是这样的类(用类、结构或联合定义):

  • 使用隐式定义的析构函数。
  • 析构函数不是虚拟的。
  • 它的基类和非静态数据成员(如果有)本身也是可破坏的类型。

但显然 std::string 并不是可轻易破坏的。为什么?std::string 不满足上述哪条规则?

std::cout << std::boolalpha
              << "std::string is trivially destructible? "
              << std::is_trivially_destructible<std::string>::value << '\n'
Run Code Online (Sandbox Code Playgroud)

上面的代码片段返回以下输出:

std::string is trivially destructible? false

c++

2
推荐指数
1
解决办法
1626
查看次数

标签 统计

c++ ×1