SORU
18 EKİM 2012, PERŞEMBE


Ne kopyası elision ve değer optimizasyonu dönüş?

Kopya elision nedir? (Adlı) değeri optimizasyon getirisi ne olacak? Onlar manası nedir?

Hangi durumlarda oluşabilir? Kısıtlamaları nelerdir?

CEVAP
18 EKİM 2012, PERŞEMBE


Giriş

- skip to this answer teknik bir genel bakış için.

Elision kopyasını ortak durumlarda ortaya çıkar - skip to this answer.

Kopya elision bir optimizasyon çoğu derleyici tarafından bazı durumlarda (potansiyel olarak) pahalı ekstra kopyalar önlemek için kullanılır. Değeri tarafından iade yapar ya da by-pass değer mümkün pratikte (kısıtlamalar geçerlidir).

Elides optimizasyon (ha!) tek şekli. -eğer bu kuralkopya elision eğer nesne hareket kopyalama/yan etkileri varsa bile uygulanabilir.

Aşağıdaki örnek Wikipedia: alınan

struct C {
  C() {}
  C(const C&) { std::cout << "A copy was made.\n"; }
};

C f() {
  return C();
}

int main() {
  std::cout << "Hello World!\n";
  C obj = f();
}

Derleyici ve ayarlarına bağlı olarak, aşağıdaki çıktılartüm geçerli:

Merhaba Dünya!


Merhaba Dünya!


Merhaba Dünya!

Bu da daha az nesneleri oluşturulabilir anlamına gelir, aynı zamanda yıkıcı çağrıldığını belirli sayıda güvenebilirsiniz. Aradı, onlar güvenemezsin olarak kopyala/-kurucular hareket ya da yıkıcı içindeki kritik mantık sahibi olmamalısın.

Eğer bir kopyalama veya taşıma yapıcı bir çağrı elided, kurucu bulunması ve erişilebilir olması gerekir. Bu kopya elision normalde copyable özel veya silinmiş bir kopya var çünkü, örneğin olmayan nesneler kopyalanıyor yapıcı hareket/izin vermez sağlar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Liberator

    Liberator

    14 EYLÜL 2007
  • pissengehen

    pissengehen

    26 EYLÜL 2006
  • ShayLoss

    ShayLoss

    5 Kasım 2009