SORU
28 Mayıs 2012, PAZARTESİ


Ne zaman gerçekten noexcept kullanmalıyım?

noexcept anahtar kelime uygun birçok işlevi imza uygulanabilir ama pratikte kullanarak düşünmelisiniz zaman olarak emin değilim. Şimdiye kadar okuduğuma göre, noexcept Son-Dakika olarak hareket kurucular atınca ortaya çıkan bazı önemli konuları ele almak gibi görünüyor. Ancak, hala tatmin edici cevaplar Beni ilk etapta noexcept hakkında daha fazla bilgi edinin yol açan bazı pratik sorular sağlamak için kuramıyorum.

  1. Hiç atar biliyorum ancak derleyici bu yüzden kendi başına belirlemek işlevleri pek çok örnek var. İşlev bildirimi için noexcept ekleme yapayımtüm bu durumlar?

    Sahip olmak veya noexcept sonra eklemek istiyorum olup olmadığı hakkında düşünmekherişlev bildirimi büyük ölçüde programcı verimlilik (ve açıkçası, baş belası olacaktır) azaltacaktır. Hangi durumlar için hangi durumlar olabilir noexcept ve kullanımı konusunda daha dikkatli olmam uzakta noexcept(false) ima ile alayım mı?

  2. Ne zaman gerçekçi noexcept kullandıktan sonra bir performans artışı gözlemlemek için bekleyebilirsiniz? Özellikle, C compiler noexcept ve ek sonra daha iyi bir makine kodu oluşturmak kod örneği verin.

    Kişisel olarak, artan özgürlük güvenle iyileştirmeleri belirli türde uygulamak için derleyici için sağlanan çünkü noexcept önemsiyorum. Modern Derleyiciler bu şekilde noexcept ne yapılabilir? Bazıları o kadar yakın gelecekte ne bekleyebiliriz?

CEVAP
28 Mayıs 2012, PAZARTESİ


"Uygulamalar" yeterli zaman pratikte kullanmak için olmadı bu cevap. en iyi vermek için çok erken olduğunu düşünüyorum Eğer bu o zaman onlar geldikten sonra belirteçleri doğru atmak hakkında soruldu cevaplar şimdi çok farklı olurdu.

Ya da her fonksiyonu ilanından sonra noexcept eklemek istiyorum olup olmadığı hakkında düşünmek zorunda büyük ölçüde programcı verimlilik (ve açıkçası, baş belası olacaktır) azaltacaktır.

O zaman işlevi hiçbir zaman atacağını belli olduğunda kullanın.

Ne zaman gerçekçi noexcept kullandıktan sonra bir performans artışı gözlemlemek için bekleyebilirsiniz? [...] Kişisel olarak, artan özgürlük güvenle iyileştirmeleri belirli türde uygulamak için derleyici için sağlanan çünkü noexcept önemsiyorum.

En büyük optimizasyon kazançları kullanıcı iyileştirmeleri, derleyici olanlar değil imkanı noexcept kontrol ve aşırı yükleme nedeniyle gibi görünüyor. Çoğu derleyici izleyin bir ceza-yok---yok-at özel durum işleme yöntemi çok şüpheliyim değiştireceğini kadar (veya bir şey) makine kodu seviye kodunuzu, ancak belki de azaltmak ikili boyutu kaldırarak işleme kodu.

Kullanarak noexcept büyük 4 (kurucular, atama değil, yıkıcı olarak verirler zaten noexcept) olası bir nedeni iyi gelişmeler olarak noexcept Çek 'ortak' şablon kodu gibi std kaplar. Örnek noexcept (veya derleyici bunu başka türlü anlamak) işaretli olmadığı sürece sınıf hareket kullanmayacağım için.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kat Krazy

    Kat Krazy

    12 Kasım 2010
  • MrMimoB

    MrMimoB

    11 NİSAN 2011
  • Trevor Eckhart

    Trevor Eckha

    19 Aralık 2009