在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.c
和y.c
应该是什么?