当前位置:  开发笔记 > 编程语言 > 正文

平凡的默认可构造std :: optional和std :: variant

如何解决《平凡的默认可构造std::optional和std::variant》经验,为你挑选了1个好方法。

是否允许以这种方式设计std::optional(当前std::experimental::optional),对于简单的默认可构造类型,T相应std::optional< T >的也是简单的默认可构造的?

同样的问题退出std::variant及其整体鉴别器.

我自己的答案是:"不,它不能以这种方式设计,因为如果对象具有自动存储持续时间或者reinterpret_cast来自非零初始化存储的-ed,则在默认初始化期间获得的积分鉴别器的值将是不确定的. " 我不介意每次要求用户进行值初始化.



1> Andrzej..:

你的答案是对的:你做不到.规范要求false在默认构造时将其"初始化标志"设置为.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有