如果对象不存在,按值或特殊值返回类对象的函数的最佳签名是什么?
对于返回多个对象的函数,函数原型是
QList<X> getSomeXOrNothing();
- 如果有对象则返回对象列表,如果没有对象则返回空列表,这完全符合我的需求并且使用起来很方便。
现在,我知道该函数只能返回单个对象或什么都不返回,最好的签名是什么?返回原始指针是不可取的,因为它有可能导致错误泄漏。
我在返回共享指针或仍然返回具有单个值的列表之间进行辩论:
QList<X> getSingleXOrNothing();
QSharedPointer<X> getSingleXOrNothing();
但我想知道是否有更好的方法来做到这一点 - 共享指针增加了不必要的开销,而返回一个列表是有争议的,因为我知道列表只能包含一个对象。
编辑: 所有 QList、SharedPointr 和 QVariant 都是可接受的选项,但我正在为每个字节都很重要的嵌入式设备开发,并且会有很多调用这个函数 - 所以试图找到给定条件的最佳容器 - 它是一个对象或什么都没有。