C++构造函数能否知道它是否在构造 const 对象?



在C++中,对象构造函数不能是const限定的。

但是,类A的对象的构造函数能知道它是在构造const A还是在构造非常量A吗?

在关于这个问题的讨论中受到一个好的观点的激励

否,因为复制省略(以及所谓的保证复制省略(可以更改对象的常量"在";结构:

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应该是什么?

相关内容

  • 没有找到相关文章

最新更新