std::optional<std::nullopt_t>将如何操作?

How would a std::optional<std::nullopt_t> operate?

提问人:Joshua Green 提问时间:7/15/2023 更新时间:7/15/2023 访问量:102

问:

有点愚蠢的问题,但我很好奇,我还没有找到解释。建造一个合法吗?如果你这样做了,会怎样std::optional<std::nullopt_t>

std::optional<std::nullopt_t> x(std::nullopt);

男孩是否包含值?x

C++ C++17 标准可选

评论

11赞 Miles Budnek 7/15/2023
这是不允许的:“此外,如果程序实例化了一个带有(可能是 cv 限定的)标签类型 std::nullopt_t 或 std:in_place_t 的可选选项,则该程序的格式不正确。
0赞 Ryan Haining 7/15/2023
GCC的实时链接错误
0赞 Eljay 7/16/2023
建造合法吗?人祭!狗和猫住在一起!大规模歇斯底里!

答:

6赞 Nicol Bolas 7/15/2023 #1

正如注释中所指出的,明确禁止实例化 with (or ),并且会因编译错误而失败。optionalnullopt_tin_place_t

评论

5赞 Ryan Haining 7/15/2023
eel.is/c++draft/optional#optional.general-3