相关疑难解决方法(0)

保留std :: initializer_list的副本是否安全?理由是什么?

在我的环境中,它std::initializer_list被实现为指向第一个元素的指针和一个大小.仍然在我的具体设置中,我能够观察到:

  • 基础数据在当前函数框架中分配(因为指向第一个元素的指针是这样说的)
  • initializer_list从函数返回by值不会更改指针的值(导致数据不会与initializer_list一起复制的结论).

如果副本可以比原始对象更长initializer_list,那么复制一个是不安全的.

  • 是否会通过进一步发布C++标准来维护这种行为?
  • 同样重要的是,这种行为背后的理由是什么?(今天我觉得很难,所以我天真地说它违背了"最不惊讶"这个心爱的原则)

c++ initializer-list c++11 c++14

8
推荐指数
1
解决办法
529
查看次数

标签 统计

c++ ×1

c++11 ×1

c++14 ×1

initializer-list ×1