- 主题:智能指针真想用的爽, 还得是intrusive的
传参数的时候, 想穿裸指针就传指针, 想传smart ptr就传smart ptr
到函数里边重新握住就行了,
比如这种
void foo(some_object* obj_ptr)
{
smart_ptr<some_object> smptr(obj_ptr);
// bla bla bla
}
反倒是std::shared_ptr, 一旦包裹上, 就在也甩不掉, 到哪里都要用shared_ptr
--
FROM 120.244.224.*
你这把所有权都搞乱了吧?
【 在 xieyf 的大作中提到: 】
: 传参数的时候, 想穿裸指针就传指针, 想传smart ptr就传smart ptr
: 到函数里边重新握住就行了,
: 比如这种
: ...................
--
FROM 221.218.210.*
当然不会啊, intrusive, ref count保存在对象内部.
【 在 Bernstein (Berns) 的大作中提到: 】
: 你这把所有权都搞乱了吧?
--
FROM 120.244.224.*
Counter 是 thread safe 的吗
【 在 xieyf 的大作中提到: 】
: 当然不会啊, intrusive, ref count保存在对象内部.
:
--
FROM 173.167.129.*
Smart ptr 没听说过。
【 在 xieyf 的大作中提到: 】
: 传参数的时候, 想穿裸指针就传指针, 想传smart ptr就传smart ptr
:
: 到函数里边重新握住就行了,
: ...................
--来自微水木3.5.1
--
FROM 42.234.93.*
必须得,你可以看一下osg的ref_ptr,一个标准,全语义的智能指针。
【 在 mvtec @ [CPlusPlus] 的大作中提到: 】
:
: Counter 是 thread safe 的吗
:
: 【 在 xieyf 的大作中提到: 】
: : 当然不会啊, intrusive, ref count保存在对象内部.
--
FROM 120.244.224.*
不如c#
【 在 xieyf 的大作中提到: 】
: 传参数的时候, 想穿裸指针就传指针, 想传smart ptr就传smart ptr
:
: 到函数里边重新握住就行了,
: ....................
- 来自「最水木 for iPhone 7」
--
FROM 111.196.79.*
Objective-C的NSObject是你说的这种吧?
这些继承自NSObject的指针是拥有引用计数的“裸指针”。
其实ObjC中不存在专门的“智能指针”吧?
而真正的裸指针(比如int*)在ObjC里也不会拥有任何“智能”
(你得用NSInteger *)
【 在 xieyf 的大作中提到: 】
: 传参数的时候, 想穿裸指针就传指针, 想传smart ptr就传smart ptr
: 到函数里边重新握住就行了,
: 比如这种
: ...................
--
FROM 58.213.26.*
另外,shared_ptr用作函数参数这种事本身就是要慎重对待的,能免则免。
【 在 xieyf 的大作中提到: 】
: 传参数的时候, 想穿裸指针就传指针, 想传smart ptr就传smart ptr
: 到函数里边重新握住就行了,
: 比如这种
: ...................
--
FROM 58.213.26.*
等一等,NSInteger难道不是int的别名?
【 在 dnd (tongtong) 的大作中提到: 】
: Objective-C的NSObject是你说的这种吧?
: 这些继承自NSObject的指针是拥有引用计数的“裸指针”。
: 其实ObjC中不存在专门的“智能指针”吧?
: ...................
--
FROM 36.106.167.*