阅读有关std::optional http://en.cppreference.com/w/cpp/utility/optional,我对分配值的标准方法感到困惑某物 and nothing to an optional
.
I guess operator=
将是为可选值分配值的标准机制。似乎有效。这是否意味着底层对象的副本?
标准分配方法是什么nothing?我见过x = {}
(这对我来说没有意义,因为{}
是一个空块)并且x = std::nullopt
.
我不会说有一种“标准”方法可以不向 std::Optional 分配任何内容。
如果你读过提案 https://isocpp.org/files/papers/N3672.html#rationale.reset_syntaxl for std::optional
(“添加一个实用程序类来表示可选对象的提案”)作者按以下顺序提出了两种方法:
我们在标准语言中提出了额外的要求,以确保以下语法适用于重置可选:
op = {};
我们认为这将成为 C++ 中重置(置于默认构造状态)值的常见习惯用法
请注意,这并不是脱离可选对象的唯一方法。您还可以使用:
op = std::nullopt;
std::optional::reset
在撰写该提案时不存在,因此没有提及,但这也是一种有效的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)