我正在用 C++ 编写一个简单的容器类,类似于存储由键索引的对象的映射。我想提供一个访问器功能,例如:
V& getValue(const K &key);
我在其中返回对该值的引用。
但我也想处理键/值不存在并能够向用户返回一些状态的情况(可能有一些原因导致我想通过某种状态类型与调用者通信回不存在)。
我想我可以执行以下操作,但调用它需要在调用此函数之前构造一个 V 对象,我只是要将内部 V 对象复制到通过引用传入的对象中,所以这看起来很糟糕.
Status getValue(const K &key, V& v);
我也可以这样做:
V &getValue(const K &key, Status &s);
但是由于某种原因,这似乎有点笨拙,因为焦点从状态中移开,用户可能会忘记检查它(但也许这不是我的问题)。
那么无论如何有没有类似的功能
Status getValue(const K &key, V& v);
在调用它之前不需要构造一个虚拟的 V 对象吗?您不能将引用传递给引用。我想我可以使用指针并且很乐意这样做,但是对于创建一个简单易用和关于函数的推理来说不太理想。
有什么想法吗?