我有一个功能,检查正则表达式并std::vector<int>根据正则表达式结果返回.我需要检查功能是否失败/成功.在成功返回向量对象时,无法nullptr稍后检查if (somefunc() == nullptr) // do smth
k.v*_*.v. 11
返回类型的std::vector<int>值不能nullptr.
在这种情况下最直接的方式是返回std::unique_ptr<std::vector<int>>- 在这种情况下,它可以返回nullptr.
其他选择:
optional<std::vector<int>>作为返回类型(boost::optional或者std::optional,如果你的编译器有这个C++ 17功能)bool参数并具有std::vector<int>&函数的输出参数最好的方法取决于用例.例如,如果大小为0的结果向量等同于"失败" - 请随意在代码中使用此类知识,并检查返回向量是否为空以了解函数是否失败或成功.
在我的练习中,我几乎总是坚持回归optional(提升或标准,取决于环境限制).这种界面是说明"结果可以存在与否"这一事实的最明确的方式.
总结一下 - 这对于唯一正确的解决方案来说不是问题.上面列出了可能的选项 - 这只是您的个人经验和环境限制/对话的问题 - 可以选择哪个选项.
| 归档时间: |
|
| 查看次数: |
850 次 |
| 最近记录: |