我想知道这是否会被认为是 std::optional 的有效用法。我有一个返回process_id
(std::uint32_t
值) 的std::uint32_t
函数,如果我们找不到目标进程 ID 或者返回 std::optional 更合适,那么使用返回 0 的标准 " " 函数会更有效吗?
例子:
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 并检查该值. 先感谢您。