我可以安全地指向重新分配的boost :: optional的数据吗?

朱利安

给定以下代码示例:

boost::optional< int > opt;
opt = 12;
int* p( &*opt );
opt = 24;
assert( p == &*opt );

是否可以保证断言将始终有效?

理查德·霍奇斯

是的,这是一种保证。Tboost::optional<T>是一个逻辑上的可选的私有成员。

上面的代码在逻辑上等效于:

bool opt_constructed = false;
int opt_i; // not constructed

new int (&opt_i)(12); opt_constructed = true; // in-place constructed

int*p = &opt_i;

opt_i = 24;

assert(p == &opt_i);

// destuctor
if (opt_constructed) {
  // call opt_i's destructor if it has one
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

硬盘已重新分配扇区...但是现在神奇地没有了!我可以相信吗?

来自分类Dev

我可以安全地向“系统保留”分区中分配字母或隐藏东西吗?

来自分类Dev

我可以安全地访问可能未分配的内存地址吗?

来自分类Dev

重新同步时,可以安全地将数据写入RAID-1阵列吗?

来自分类Dev

我可以安全地消毒textarea吗

来自分类Dev

我可以安全地添加新分区吗?

来自分类Dev

我可以安全地在“ onCreateView”中使用“ getChildFragmentManager”吗?

来自分类Dev

我可以安全地更改SharedPreferences变量的类型吗?

来自分类Dev

我可以安全地移除lubuntu-desktop吗?

来自分类Dev

我可以安全地复制vector <array>吗?

来自分类Dev

我可以安全地忽略这些错误吗?

来自分类Dev

我可以安全地从模式1删除表吗?

来自分类Dev

我可以安全地移除lubuntu-desktop吗?

来自分类Dev

我可以安全地添加新分区吗?

来自分类Dev

我可以安全地删除该分区吗?

来自分类Dev

我可以安全地删除/ var / cache吗?

来自分类Dev

我可以安全地对textarea进行消毒吗

来自分类Dev

我可以安全地禁用软件保护服务吗?

来自分类Dev

我可以安全地更新Windows 10吗?

来自分类Dev

我可以重新分配/覆盖std :: string吗?

来自分类Dev

我可以相信必须重新分配扇区的硬盘吗?

来自分类Dev

我可以安全地确认我无权访问数据库吗?

来自分类Dev

我可以在受感染的虚拟机上安全地重新安装操作系统并仍然保留我的数据吗?

来自分类Dev

我可以安全地删除Ubuntu 12.04分区并为Elementary OS使用未分配的空间吗?

来自分类Dev

空指针可以安全地指向另一个指针吗?

来自分类Dev

std :: string重新分配可以使指向堆的指针无效吗?

来自分类Dev

std :: string重新分配可以使指向堆的指针无效吗?

来自分类Dev

可以安全地将std :: vector <std :: complex <boost:multiprecision :: float128 >>(N).data()重新解释为fftwq_complex *吗?

来自分类Dev

我可以安全地将std :: string用于C ++ 11中的二进制数据吗?

Related 相关文章

  1. 1

    硬盘已重新分配扇区...但是现在神奇地没有了!我可以相信吗?

  2. 2

    我可以安全地向“系统保留”分区中分配字母或隐藏东西吗?

  3. 3

    我可以安全地访问可能未分配的内存地址吗?

  4. 4

    重新同步时,可以安全地将数据写入RAID-1阵列吗?

  5. 5

    我可以安全地消毒textarea吗

  6. 6

    我可以安全地添加新分区吗?

  7. 7

    我可以安全地在“ onCreateView”中使用“ getChildFragmentManager”吗?

  8. 8

    我可以安全地更改SharedPreferences变量的类型吗?

  9. 9

    我可以安全地移除lubuntu-desktop吗?

  10. 10

    我可以安全地复制vector <array>吗?

  11. 11

    我可以安全地忽略这些错误吗?

  12. 12

    我可以安全地从模式1删除表吗?

  13. 13

    我可以安全地移除lubuntu-desktop吗?

  14. 14

    我可以安全地添加新分区吗?

  15. 15

    我可以安全地删除该分区吗?

  16. 16

    我可以安全地删除/ var / cache吗?

  17. 17

    我可以安全地对textarea进行消毒吗

  18. 18

    我可以安全地禁用软件保护服务吗?

  19. 19

    我可以安全地更新Windows 10吗?

  20. 20

    我可以重新分配/覆盖std :: string吗?

  21. 21

    我可以相信必须重新分配扇区的硬盘吗?

  22. 22

    我可以安全地确认我无权访问数据库吗?

  23. 23

    我可以在受感染的虚拟机上安全地重新安装操作系统并仍然保留我的数据吗?

  24. 24

    我可以安全地删除Ubuntu 12.04分区并为Elementary OS使用未分配的空间吗?

  25. 25

    空指针可以安全地指向另一个指针吗?

  26. 26

    std :: string重新分配可以使指向堆的指针无效吗?

  27. 27

    std :: string重新分配可以使指向堆的指针无效吗?

  28. 28

    可以安全地将std :: vector <std :: complex <boost:multiprecision :: float128 >>(N).data()重新解释为fftwq_complex *吗?

  29. 29

    我可以安全地将std :: string用于C ++ 11中的二进制数据吗?

热门标签

归档