相关疑难解决方法(0)

返回值为const引用时如何返回"not found"

我有一个问题,当我使用这样的东西时:

const MyList& my_list = getListForThisRegion(/*region ID, ...*/);
Run Code Online (Sandbox Code Playgroud)

当没有找到任何价值时,我不知道该返回什么.

我的问题是,我希望有一种方法可以getListForThisRegion向调用者发出信号(当返回值时)"找不到值".如果我正在返回指针,我可以返回nullptr,但我不知道如何使用引用.我能想到的只是拥有一些not_found类型的静态成员MyList,并返回对它的引用,但它看起来很难看.

是的,我无法返回价值,因为列表是"胖"并经常使用.

编辑:很多很好的答案,但例外是不可接受的解决方案,因为它将被提高的次数很高(百分比nbNotFound/nbCalls很高).
EDIT2:关于boost :: optional - 掌握它有多复杂?我的意思是它需要一些非显而易见的知识(非显而易见的=不仅仅是知道语法的东西)?

c++ reference

6
推荐指数
1
解决办法
1282
查看次数

标签 统计

c++ ×1

reference ×1