gpt4 book ai didi

c++ - 现代 C++ : what is the best approach for function returning a status (ok/not ok) and an error (if status not ok)?

转载 作者:行者123 更新时间:2023-12-03 06:52:38 26 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.

1年前关闭。




Improve this question




我们可以返回一个元组

std::pair<bool, std::string> fooFunction();
但这在创建返回值时使代码变得多余,并强制调用者处理元组(在 c++17 中使用结构绑定(bind)很容易)
if ( okayCondition)
return {true, {}};
else
return { false, "blabla error"};
或者我们可以使用
std::optional<std::string> fooFunction();
这对于返回 bool 的现有函数很有趣,因为由于 std::optional 运算符 bool,大多数调用者不需要更新
//Legacy code ok
if (fooFunction())
我知道一种更重的方法,一个模板化的 ReturnStatus 类,如果调用者不测试返回状态值,它会抛出。
还有其他方法吗?

最佳答案

您可以考虑返回 std::error_code 从你的功能。
使用此类,您可以提供 std::error_code::value 可用于错误处理和 std::error_code::message 如果有任何可操作或提供信息,则向用户显示信息。

关于c++ - 现代 C++ : what is the best approach for function returning a status (ok/not ok) and an error (if status not ok)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64755252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com