当我尝试这个时:
#include <optional> using namespace std;
int main() {
return make_optional(2) + make_optional(3);
}
我明白了:
error: no match for ‘operator+’ (operand types are ‘std::optional<int>’ and
‘std::optional<int>’)
5 | return make_optional(2) + make_optional(3);
| ~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~
| | |
| optional<[...]> optional<[...]>
optional
添加与类型相同的类型似乎很自然size_t
。~~我知道 Haskell 本身就支持这个~~(编辑:这个假设并不完全正确)。当然我可以写一个辅助函数。我问的目的是确保没有更简单的方法可以做到这一点。在你提出建议之前,是的,我已经用谷歌搜索、RTFM 等。