我正在使用代码库,它广泛使用以下语法:
shared_ptr<Object> myObject = (shared_ptr<Object>) new Object();
Run Code Online (Sandbox Code Playgroud)
我注意到我无法访问私有构造函数make_shared,但shared_ptr<Object> myObject = (shared_ptr<Object>) new Object();工作得很好.我应该使用它只是因为它似乎工作?有危险吗?它有什么不同make_shared?
我知道这个问题的答案,它在make_shared和之间进行了比较:
std::shared_ptr<Object> p2(new Object("foo"));
Run Code Online (Sandbox Code Playgroud)
但是我找不到对我遇到的语法的引用.它是不同的,还是与上面相同?
我想知道是否/如何可以看到编译器在启用优化时如何使用clang ++/g ++重构一段代码.我知道英特尔编译器有一个标志来产生相关的输出,但我似乎无法找到其他编译器中的等价物.