参照型に明示的にキャストする - C++ プログラミング

PROGRAM


参照型に明示的にキャストする

C++ では std::ref 関数を使って、通常の変数を参照に明示的にキャストできます。

int value;

int& p = std::ref(value);

このような参照への代入だけなら "int& p = value;" と書けば大丈夫ですが、たとえば引数に参照を取る関数や、引数によって型が決まるテンプレート関数などでは、参照であることを明示しないと期待とは違う動作をしてしまう危険性があります。

なお、この関数は実際には、参照ラッパ std::reference_wapper<T> でラップした値を返します。


[ もどる ]