在我的项目中,我混合了智能指针和原始指针。有些函数需要同时适用于原始函数和智能函数,在这些函数中,我只在指针上使用了->、=和*。我的问题是,如果我有多个参数,我是否必须编写每个函数两次甚至更多次,或者如果有什么我可以做的,我可以同时传递智能指针和原始指针。我在想一个围绕指针的包装类,或者类似这样的东西。
发布于 2016-05-09 12:51:57
(这个问题将从代码示例中受益良多,不过我将尝试回答。)
我建议通过引用或常量引用传递,然后在将参数传递给函数时,在任何一种指针上使用*运算符。
由于您的函数应该与raw或smart一起使用,并且您并不清楚这是不可能的:D,这对我来说意味着实现不应该与所有权做任何事情。比如因为某种原因拿了一份shared_ptr的拷贝。这意味着,它们更好地编写为引用,因为它们不关心所有权。
https://stackoverflow.com/questions/37104849
复制相似问题