智能指针通常很小,所以按值传递不是问题,但是传递对它们的引用有什么问题吗?或者更确切地说,是否存在不能这样做的特定情况?
我正在编写一个包装库,我的几个类在底层库中包装了智能指针对象......我的类不是智能指针,但 API 当前按值传递智能指针对象。
例如当前代码:
void class::method(const AnimalPtr pAnimal) { ... }
变成
void class::method(const MyAnimal &animal){...}
我的新包装类在哪里MyAnimal
封装AnimalPtr
。
无法保证 Wrapper 类有一天不会超出包装智能指针的范围,因此按值传递让我感到紧张。