Ne rvalues, lvalues, xvalues, glvalues ve prvalues?
C 03, ya da bir ifadervalueya da birlvalue.
11, Bir bir ifade olabilir:
- rvalue
- lvalue
- xvalue
- glvalue
- prvalue
İki kategoride beş kategori haline gelmiştir.
- İfadelerin bu yeni kategoriler nelerdir?
- Nasıl bu yeni kategoriler mevcut lvalue ve rvalue kategoriler için ile ilgili?
- C 0x içinde lvalue ve rvalue kategorileri C 03 oldukları gibi aynı mı?
- Neden bu yeni kategoriler gerekli? WG21 tanrılar bizi şaşırtıyor ölümlüler?
CEVAP
Bu belge çok kısa bir giriş olarak hizmet sanırım : n3055
Bütün katliam hareket semantiği ile başladı. Bir kez taşındı, hangi yönde kavramak kuralları taşınabilir ifadeler arasındaki ayrım talep etmek, ve aniden kolay değil kopyalanabilir ifadeler var.
Taslağa göre sanırım, r/l değer farkı aynı, sadece işler karışıyor hareket bağlamında kalır.
Gerekli midirler? Eğer yeni özellikler çekilmek istiyorsak, muhtemelen değil. Ama daha iyi optimizasyonu sağlamak için muhtemelen onlara kucak açmalıyız.
n3055 alıntı:
- Birlvalue(sözde, tarihsel olarak,
lvalues üzerinde görünebilir çünkü
sol atama yan
ifade) fonksiyonu atar ya
bir nesne.
E
İse [örnek: işaretçi türü ifade,*E
lvalue expression dir fonksiyon 2 **nesne ya da puan. Başka bir örnek olarak, bir işlev çağrısının sonucu olan dönüş türü başvuru bir lvalue lvalue.] - Birxvalue(bir “dolan” değeri) da ifade eder nesne, kendi sonuna doğru genellikle ömür boyu kendi kaynakları olabilir (yani taşındı, örneğin). Bir xvalue. belirli türdeki sonucu rvalue ifadeler içeren referanslar.[Örnek: bir işlev çağrısının sonucu olan dönüş türü referans bir rvalue. xvalue.]
- Birglvalue(“genel” lvalue)lvalue ya da birxvalue.
- Birrvalue(sözde, rvalues çünkü tarihsel olarak, bir sağ tarafında görünür anlatım ödevi), xvalue, geçici bir nesne ya da bunların sınıfın, ya da bir değer bir nesne ile ilişkili değil.
- Bir prvalue“saf” rvalue) bir rvalue ( bir xvalue değildir.[Örnek: bir işlev çağrısının sonucu olan dönüş türü bir referans değil prvalue]
Söz konusu belge, yeni bir isim getirilmesi sonucunda gerçekleşen standart tam değişiklikler gösterir, çünkü bu soru için büyük bir referans.
C 11 rvalues ve hareket semantik karış...