У меня есть std::unordered_map<uint64_t, Object> _map
, и я хотел бы предоставить клиентам доступ только для чтения.
Изначально я думал об этом:
bool foundItem(const uint64_t key, Object& object) const
{
if(_map.find(key) != _map.end())
{
object = _map.at(key);
return true;
}
else
{
return false;
}
}
, но, очевидно, это не так.t только для чтения, поэтому я изменил сигнатуру для возврата объекта, и bool может передаваться по ссылке:
const Object& foundItem(const uint64_t key, bool& found) const
{
if(_map.find(key) != _map.end())
{
found = true;
return _map.at(key);
}
else
{
found = false;
// What can I return here??
}
}
, но теперь у меня нет типа для возврата, если ключ не найден.
Каков наилучший способ предоставить пользователю доступ только для чтения к (возможно) возвращенному объекту?