私は参照にバインドすることで、値のアドレスを取ることができます(理解しているように、それは左辺値によってのみ参照できます)。私は直接住所を取ることができる価値がありますか?
住所を直接取ることができる方法はありますか(つまり&(<rvalue>)
は有効な表現で、operator&()
を上書きしないでください)。
他の値に「バインディング」することで可能なのでしょうか? (これは、左辺値である参照にのみバインドすることができるため、上記のようなものではないようですが、ここでは似たような概念がいくつかあります)。答えは以下のことが当てはまるかどうかです。rvaluesは、左辺値のビットフィールドやその他の特殊な種類の左辺値を除いて、アドレスを直接取ることができる式のセットに厳密に対応します。
左辺値内に右辺値が隠されていない限り、左辺値の定義に矛盾するので、そのアドレスを「&」とすることはできません – AndyG
言語弁護士はタグですか?私に笑いを込めました – arynaq
'' std :: addressof() '](http://en.cppreference.com/w/cpp/memory/addressof)を見てください。これは' operator& 'をオーバーライドするクラスの問題を扱っています。 –