c – 没有所有权的堆栈对象的指针
我想要一个带有指针成员变量的类.该指针应指向可以进行堆栈分配或堆分配的对象.但是,这个指针不应该有任何所有权.换句话说,当指针超出范围时,根本不应该调用delete.我认为一个原始的指针可以解决问题…但是,我不知道如果有一个比原始指针更好的C11方法?
例: class foo{ public: bar* pntr }; int main(){ bar a; foo b; b.pntr=&a; } 解决方法
原始指针在这里非常好. C 11没有任何其他处理非拥有对象的“哑”智能指针,因此您不能使用C 11智能指针. X- 20045 X- 200 200 X- 200 200 X- 200 200:20045 200:20045 200 X-
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4282.pdf 新新p新新新新200新200新200新200新200新200新200新新200新200新200新200新200新200新200新200新200新200新200新200新200新200新200新200新200新新200新200新200新新200新新200新200新200新新200新新200新200新新200新 200新X-45旗新新新新新新旗新新旗新新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新旗新新200新新旗新新200新新新旗新新旗新新旗新新旗新新旗旗号 #include <memory> int main() { int a{42}; auto no_op = [](int*){}; std::unique_ptr<int,decltype(no_op)> up(&a,no_op); } 或者,如@ T.C所述.在评论中,一个 正如@Lightness Races in Orbit所提到的, (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |