これは私が達成しようとしていることです:
struct test{};
const test returnconst(){
return test();
}
test returnnonconst(){
return test();
}
int main(){
test t1=returnnonconst();
const test t2=returnnonconst();
test t3=returnconst(); //I want this to be a compile error
const test t4=returnconst();
}
コンパイラは、4 つの return* 呼び出しをすべて受け入れます。3 番目の呼び出しでオブジェクトのコピーが構築されることは理解していますが、代わりに呼び出し元にreturnconst
値を として格納するよう強制したいと考えていますconst
。これに対する回避策はありますか?