http://herbsutter.com/2008/01/01/gotw-88-a-candidate-for-the-most-important-const/'da "en önemli const" ifadesiyle C++ tarafından, geçici bir nesneyi yığında bulunan bir referansa geçici bir nesneyi bağlamanın, referansın yaşam süresi boyunca geçici ömrün ömrünü uzattığını kasten belirtir. Ben C++ sadece neden olduğu zaman değil, değil, ancak, const olduğunda nesnenin ömrünün uzatılmasına izin veriyor merak mı? Özelliğin ardındaki mantıklı nedir ve neden bu kadar zor olmalı? Bu izin verildi eğerNeden "en önemli const" const olmalı?
int& x = 5;
x = 6;
ne yapılsın:
Buradaki Standart'dan bir alıntı yapmayı umuyoruz, çünkü kendimi hiçbir zaman 'const' gerektirmediğine inandım. (N3936'da 12.2 p4 ve 5'e bakın). – BoBTFish
Böylece, derleyici, nesnenin kapsam dışına çıkmasından önce geçici olarak hiçbir yolun değiştirilmediğini doğrulamak zorunda kalmaz. –
@BoBTFish: Referanslara bağlı olan geçici ömürlerin ömrüne bakıyorsunuz. Onları ilk etapta nasıl bağlayacağınıza dair kurallar için [dcl.init.ref] 'e bakınız (C++ 11'de 8.5.3). Özellikle, p5'in son mermi: "referans, uçucu olmayan bir ** const ** tipi [veya] bir referans referansına verilen bir değer referansı olmalıdır." –