【发布时间】:2019-09-17 18:26:34
【问题描述】:
我想知道这是否会被认为是 std::optional 的有效用法。我有一个返回process_id(std::uint32_t 值)的函数,如果我们无法找到目标进程 ID 或返回 std,则使用返回 0 的标准“std::uint32_t”函数会更有效: :optional 更合适?
示例:
std::optional<std::uint32_t> FindProcessID(std::string_view process)
{
bool find = false;
if (!find)
// we fail to find the process_id and return nothing.
return std::nullopt;
else if (find)
return 100; // return the id
}
我在返回一个 unique_ptr 时也这样做 - 也反对只返回一个 nullptr,但我不确定这是否会被视为“滥用”所述功能,以及是否最好只返回 0 并检查对于那个值。提前谢谢你。
【问题讨论】:
标签: c++ stl return unique-ptr stdoptional