我如何 return 一个可选的指针或引用 ( std::optional )?
How do I return an optional pointer or reference ( std::optional )?
假设我有以下模板函数:
template <typename T>
std::optional<std::reference_wrapper<const T>> larger(const T data[], size_t count) {
if(!count) return std::nullopt;
size_t index_max {};
for(size_t i {1ULL}; i < count; ++i)
index_max = data[i] > data[index_max] ? i : index_max;
return std::optional< std::reference_wrapper<const T> > {&data[index_max]};
}
我想做的是 return 一个可选的参考,但没有成功。我不确定如何从这里开始。这就是我想出的,最初我得到的是 std::optional<const T*>
作为 return 类型。
假设我有以下模板函数:
template <typename T>
std::optional<std::reference_wrapper<const T>> larger(const T data[], size_t count) {
if(!count) return std::nullopt;
size_t index_max {};
for(size_t i {1ULL}; i < count; ++i)
index_max = data[i] > data[index_max] ? i : index_max;
return std::optional< std::reference_wrapper<const T> > {&data[index_max]};
}
我想做的是 return 一个可选的参考,但没有成功。我不确定如何从这里开始。这就是我想出的,最初我得到的是 std::optional<const T*>
作为 return 类型。