Ben daha etkilidir aşağıda gibi doğrudan liste-başlatma ile kod yazma alışkanlığı geldim ve onu narrowing örtülü önlemek için çok yararlı olacaktır:
Otomatik ile doğrudan liste başlatması neden hatalı sayılıyor veya tercih edilmiyor?
int i {0};
string s {""};
char c {'a'};
bool b {false};
auto num {100}; // But this??
Ama oto belirtici gelince, Kötü olduğunu düşündüğümü ya da böyle yazmak için tercih edilmediğini duydum, neden bu?
Kıvrık diş tellerinin etrafında bir sürü kusur ve gariplik vardır. Örneğin. int n; int & r {n}; 'kırılmıştı. Ve 'auto x = {1, 2} 'nin' auto y = {1} 'için dejenerasyonu şaşırtıcı olabilir. Temel olarak, kaşlı ayraçlar, bazı kişilerin okurlarınızla kafa karıştırmaya değmeyeceğini düşündüğü pek çok tekdüzeliği ortaya çıkarır. –
şiddetle tavsiye: [herb Sutter: Neredeyse Her Zaman Otomatik] (http://herbsutter.com/2013/08/12/gotw-94-solution-aaa-style-almost-always-auto/) – bolov
Türü kesinti tam olarak sorun. Kıvırcık diş telleri çok farklı anlamlara sahiptir ve derleyicinin doğru yerde yapmak istediğiniz şeyi çıkarmasını ve aynı zamanda sol taraftaki türünü de çıkarmasını istersiniz. Bunun anlamı, kesintinin sağ taraftaki şaşırtıcı sonuca sahip olması (özellikle de derleyicinin, ne tür bir sonuç türü olmadığı için ne istediğinizi bilmemesi nedeniyle), sol tarafın sonucu otomatik olarak kabul etmesi ve hiçbir şeyin yanlış olmadığını kontrol etmemesi anlamına gelir. . – StenSoft