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.
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 olabilirnoexcept
ve kullanımı konusunda daha dikkatli olmam uzaktanoexcept(false)
ima ile alayım mı?Ne zaman gerçekçi
noexcept
kullandıktan sonra bir performans artışı gözlemlemek için bekleyebilirsiniz? Özellikle, C compilernoexcept
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 şekildenoexcept
ne yapılabilir? Bazıları o kadar yakın gelecekte ne bekleyebiliriz?
CEVAP
"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.
Akıllı bir işaretçi nedir ve ne zaman ...
Ne zaman GET veya POST yöntemi kullanm...
Zaman Tembel<T> kullanmalıyım?...
Ne zaman OWİN Katana kullanmalıyım?...
Ne zaman tamsayı<->pointer gerçe...