gpt4 book ai didi

c++ - C++ 构造函数能否知道它是否正在构造一个 const 对象?

转载 作者:行者123 更新时间:2023-12-04 11:53:46 25 4
gpt4 key购买 nike

在 C++ 中,对象构造函数不能是 const 限定的。
但是 - 可以是类 A 的对象的构造函数吗?知道它是否正在构建 const A或非常量 A ?
受到关于 this question 的讨论中的一个细节的启发.

最佳答案

不,因为复制省略(以及所谓的保证复制省略)可以 更改 “构造后”对象的常量性:

struct A {
bool c;
A() : c(magic_i_am_const()) {}
A(const A&)=delete; // immovable
};

const A f() {return {};}
A g() {return f();} // OK
void h() {
A x=f(); // OK
const A y=g(); // OK
}
应该怎么做 x.cy.c是?

关于c++ - C++ 构造函数能否知道它是否正在构造一个 const 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68228064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com