答えて
大丈夫です。
関数の外部にアクセスすると、の未定義の動作が発生するため、一時的な参照の参照は正しくありません。
@mkaes:何スティーブJessopは言った。技術的な理由は、実際には関数の結果参照の生涯拡張が非常にコストがかかることです。実装は、例えば、関数内の静的変数であるが、参照が消えた後、ストレージが割り当てられ、理想的に割り当て解除されたことを、呼び出し元のマシンコードに対して透過的であるようにしなければならない。私はそれが理論的に不可能だとは思わない。しかし、技術的に可能であれば、実際には非常にコストがかかるでしょう。 –
@スティーブ:同意します。私はもっと慎重に読むべきです。削除された間違ったコメント – mkaes
'1'は一時的ですか? 'int x = 1; return x; 'は一時的に戻りますが、' return 1'は異なります。 '1'はどこに住んでいますか?たぶん、すべてのリテラルは、永遠に安全な静的な空間です。たとえば、 'const char * foo(){return"一時的ですか? } ' –
&いいえ、あなたは一時変数への参照を返しているのconstためにいくつかの値を返すことです。関数の復帰時に一時変数が破棄されます。
- 1. Scala:リテラル参照自体はできますか?
- 2. コンパイル定数をプロジェクト参照に渡すことはできますか?
- 3. PHPで参照を間接参照することはできますか?
- 4. rvalue参照にリテラル定数を代入するとどうなりますか?
- 5. クラスを自己参照することはできますか?
- 6. クラスを自己参照することはできますか?
- 7. 値と参照型オブジェクトを返すことができる汎用関数
- 8. 特定の数の参照配列を関数にパラメータとして渡すことはできますか?
- 9. 定数参照を返す演算子
- 10. なぜ文字列パラメータへのconst参照は文字列リテラルを取ることができますか?
- 11. マクロはリテラルではなく定数引数とマッチできますか?
- 12. NVelocityで静かな参照をデフォルトにすることはできますか?
- 13. クラス変数を参照するためにPHPDocを設定することはできますか?
- 14. 関数から返されたポインタを参照渡しすることはできません
- 15. TBBタスクへの参照で関数を渡すときに値を返すことができない
- 16. glGetRenderbufferParameterivOESこの関数の参照はどこから入手できますか?
- 17. 参照で戻すことはできません
- 18. 複数の強力な名前を指定して.NET DLLを参照することはできますか
- 19. Javascript関数は、デフォルトでオブジェクトを参照または値で返しますか?
- 20. ベクトルメンバ参照を返すときのエラー
- 21. 特定のオブジェクトのインスタンス関数への参照を渡すことはできますか?
- 22. C++で参照を再割り当てすることはできますか?
- 23. ユニオンをC言語で自己参照することはできますか?
- 24. jQueryでライブコレクションへの参照を取得することはできますか?
- 25. ストーリーボード内で他のストーリーボードを参照することはできますか?
- 26. C#でVb.net PrintFormメソッドを参照することはできますか?
- 27. 同じWindows :: Formsプロジェクトでユーザーコントロールを参照することはできますか?
- 28. 他のスクリプトをTSQLスクリプトファイルで参照することはできますか?
- 29. SQL結合でデータフレームを参照することはできますか?
- 30. ソリューションのNameプロパティをコードで参照することはできますか?
なぜこれをやりたいですか? –
可能な複製[const参照を返す方が効率的ですか](http://stackoverflow.com/questions/275795/is-it-more-efficient-to-return-a-const-reference) – iammilind
可能な複製[C++はConst参照渡しとConst参照渡し](http://stackoverflow.com/questions/3216948/c-pass-by-const-reference-and-return-by-const-reference) – stijn