【发布时间】:2018-08-24 12:16:16
【问题描述】:
我认为将函数应用于可选项是一种非常有用的模式。然而,使用 C++ STL 很麻烦。例如:
std::optional<Vector3D> vec = tryCreateVector();
std::optional<float> length =
vec.has_value() ? std::optional<float>(vec->length()) : std::nullopt;
在 C++ 中是否有等效于 haskell 的 fmap 或 rust 的 Option::map?类似于以下内容:
std::optional<Vector3D> vec = tryCreateVector();
std::optional<float> length = map(vec, [](auto vec) { return vec.length(); });
【问题讨论】:
-
不在标准中。我正在编写一个提供这些东西的库。
标签: c++ stl stdoptional