我想知道这是否被认为是std::optional的有效用法。我有一个返回process_id
(std::uint32_t
值)的函数。如果我们无法找到目标进程ID,是否更高效地使用标准的"std::uint32_t
"函数并返回0,还是返回std::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并检查该值是否更好。提前感谢您的帮助。
unique_ptr
在这种情况下强制使用动态分配,而没有充分的理由。 - chrisstd::unique_ptr
并дёҚжҳҜз”ЁжқҘеҢ…иЈ…uint32_t
зҡ„пјҹжҠұжӯүпјҢжҲ‘иҜҜи§ЈдәҶдҪ й—®йўҳзҡ„жңҖеҗҺдёҖйғЁеҲҶгҖӮдҪҝз”Ёе…·жңүиҮӘе®ҡд№үеҲ йҷӨеҷЁзҡ„std::unique_ptr
дҪңдёәRAIIеҢ…иЈ…еҷЁе®Ңе…ЁжІЎжңүй—®йўҳпјҒ - lubgr