隐式生存期对象创建机制是否适用于C++20之前的版本?
隐式生存期对象创建与C++版本的关系
- 隐式生存期对象创建机制仅适用于C++20及之后的版本,C++20之前的标准中不存在这个特性。
- 旧版C草案里找不到相关内容,加上Stack Overflow社区的共识都能佐证:C20之前的对象模型要求对象必须通过显式构造动作启动生存期,没有定义"隐式创建生存期对象"的相关规则。
- 关于cppreference上的CWG 2489缺陷报告:
该报告是针对C20发布后的行为修正,原本C20中规定"启动char数组生存期的操作会隐式创建对象",修正后明确该操作不会隐式创建对象。这里的"追溯应用"是对已发布的C20标准的细节调整,并非把C20的隐式生存期对象创建机制回溯到更早的版本。
内容的提问来源于stack exchange,提问作者Oersted
相关产品推荐
相关产品推荐

