相关疑难解决方法(0)

在std :: string的上下文中首字母缩略词SSO的含义

关于优化和代码风格的C++问题中,在优化副本的上下文中,有几个答案提到了"SSO" std::string.在这种情况下,SSO意味着什么?

显然不是"单点登录"."共享字符串优化",或许?

c++ string optimization

141
推荐指数
3
解决办法
2万
查看次数

显式调用析构函数会导致未定义的行为吗?

在我看来,下面的代码(来自一些C++问题)应该导致UB,但它似乎不是.这是代码:

#include <iostream>
using namespace std;
class some{ public: ~some() { cout<<"some's destructor"<<endl; } };
int main() { some s; s.~some(); }
Run Code Online (Sandbox Code Playgroud)

答案是:

some's destructor
some's destructor
Run Code Online (Sandbox Code Playgroud)

我学习了c ++ faq lite,我们不应该显式调用析构函数.我认为在显式调用析构函数后,应该删除对象s.程序完成后会自动再次调用析构函数,它应该是UB.但是,我在g ++上尝试了它,并获得与上述答案相同的结果.

是因为这个类太简单了(不涉及新的/删除)?或者在这种情况下它根本不是UB?

c++ destructor undefined-behavior

5
推荐指数
2
解决办法
1441
查看次数