メソッドが実際に値で返すように宣言されているのに、参照によってメソッドから何かを返す場合、それが有効な c++ であるかどうか疑問に思っていました。
class A {
public:
int method(){
int i = 123;
int& iref = i;
return iref;
}
};
これは正常にコンパイルされ、動作するようです。私が理解していることから、メソッドの署名で宣言されているように、これは値で返されるはずです。ローカル変数への参照を返すことになりたくありません。これがトラップのない「適切な C++ コード」であるかどうかは誰にもわかりませんか?