この件についての私の理解と結論を確認したいと思います。
IRCでは、次のように質問されました。
一時オブジェクトにバインドされて
const_cast
いる参照に受け入れられますか?const
翻訳:const
彼は一時的なものにバインドされたref-to-constを持っており、それを変更するためにその性質を捨てたいと思っています。
私の回答は、以前に同様の質問をしたことでした。そこでは、一時的なもの自体は本質的にではないため、参照の性質をconst
捨てconst
て、結果を通じてそれらを変更できるというコンセンサスが得られたようです。 。そして、その元のref-to-がまだ存在している限りconst
、これは一時的なものの存続期間に影響を与えません。
あれは:
int main()
{
const int& x = int(3);
int& y = const_cast<int&>(x);
y = 4;
cout << x;
}
// Output: 4
// ^ Legal and safe
私は正しいですか?
(もちろん、そのようなコードが実際に推奨されるかどうかはまったく別の問題です!)