我试图定义一个std::shared_ptr
与new
运营商通过以下方式时:错误定义的std :: shared_ptr的新运营商
#include <memory>
struct A {
};
int main() {
std::shared_ptr<A> ptr = new A();
return 0;
}
,但我获得以下编译时错误:
main.cpp: In function 'int main()':
main.cpp:8:30: error: conversion from 'A*' to non-scalar type 'std::shared_ptr' requested std::shared_ptr ptr = new A();
不管怎样,下面肯定能行:
std::shared_ptr<A> ptr{new A()};
是否有人对你ķ现在为什么会发生?
否,即不分配。 –
@LightnessRacesinOrbit是的,你是对的。我重述了这一部分。 – Hayt