C++相談室 part28
■ このスレッドは過去ログ倉庫に格納されています
0817デフォルトの名無しさん
NGNGint i;
int &r =i;
上の場合は確かに
>我々がインスタンスをもった変数と思っているものは
>コンパイラにとっては所詮アドレスにすぎず、
>同じアドレスと解釈される変数が増えただけという認識なのだが。
この通りだとは思うのですが,
void f(int & r){ r = 2; }
この場合は,rがどの変数のエイリアスであるかは実行時まで分からないですから
void f(int *const p){ *p = 2; }
とまったく等価(インターフェイスの差異を除いて)であり,
従って参照のdereferenceのオーバーヘッドがかかると思うのですが,どうなんでしょう?
■ このスレッドは過去ログ倉庫に格納されています