«c++11» etiketlenmiş sorular

C ++ 11, 2011 yılında onaylanan C ++ standardının adıdır. Önceki C ++ 03 standardının yerini alır, çeşitli temel dil değişiklikleri ve düzeltmeleri ile geliştirilmiş ve genişletilmiş standart kitaplık ekler.

2
C ++ işlevi constexpr işaretlemek hiç kötü mü?
Çok önemsiz bir fonksiyon verildiğinde, int transform(int val) { return (val + 7) / 8; } Değişkenleri constexprtanımlarken kullanmama izin verecek şekilde, bu işlevi bir işleve dönüştürmenin kolay olduğu çok açık olmalıdır constexpr: constexpr int transform(int val) { return (val + 7) / 8; } Benim varsayım, bunun kesinlikle bir …
26 c++  c++11 

1
C ++ 11'de otomatik anahtar kelimenin motivasyonu ve tuzakları (?)
Geçenlerde anahtar kelimesinin autotürü derleyici tarafından çıkarılması gereken bir değişkeni işaretlemek için neden C ++ 11'de seçildiğini merak ediyordum . auto x = 1; Dan beri var diğer programlama dillerinde (ör. C #, Scala, JavaScript) ve autoGeriye dönük uyumluluğun yeni anlambilimini anladığım kadarıyla (nadiren kullanıldı, ancak önceki C ++ revizyonlarında …

6
Yeni C ++ 11 'otomatik' özelliğini, özellikle döngülerde kullanmalı mıyım?
autoAnahtar kelimeyi, özellikle döngüler için kullanmanın avantajları / dezavantajları nelerdir? for(std::vector<T>::iterator it = x.begin(); it != x.end(); it++ ) { it->something(); } for(std::map<T>::iterator it = x.begin(); it != x.end(); it++ ) { it->second->something(); } for(auto it = x.begin(); it != x.end(); it++ ) { it->?? } Eğer bir harita ya …
20 c++  c++11 

5
Const olarak argüman iletmek erken optimizasyon mudur?
"Erken optimizasyon tüm kötülüklerin köküdür" Sanırım hepimiz hemfikiriz. Bunu yapmaktan kaçınmak için çok uğraşıyorum. Ama son zamanlarda Value yerine const Reference ile parametrelerin geçirilmesi uygulamasını merak ediyorum . Önemsiz işlev argümanlarının (yani en ilkel olmayan türlerin) tercihen const referansı ile geçirilmesi gerektiği öğretildi / öğrenildi - okuduğum birkaç kitap bunu …

2
Std :: bitset üzerinden c-tarzı bit manipülasyonunun herhangi bir avantajı var mı?
Neredeyse sadece C ++ 11 / 14'te çalışıyorum ve genellikle böyle bir kod gördüğümde cringe: std::int64_t mArray; mArray |= someMask << 1; Bu sadece bir örnek; Genel olarak biraz akıllı manipülasyondan bahsediyorum. C ++ 'ta gerçekten bir anlamı var mı? Yukarıda belirtilenler, aşağıdakileri std::bitsetyapmanıza olanak tanıyan zihin çözgü ve hataya …


2
Geçici bir referansa dayanarak bu aralık için kim sorumlu olacak?
Aşağıdaki kod ilk bakışta oldukça zararsız görünüyor. Kullanıcı bu işlevi bar()bazı kütüphane işlevleriyle etkileşim kurmak için kullanır . ( bar()Geçici olmayan bir değere veya benzerine bir referans döndürdüğünden beri bu uzun bir süre çalışmış olabilir .) Ancak şimdi yeni bir örneğini döndürüyor B. Byine a()yinelenebilir türdeki bir nesneye başvuru döndüren …
15 c++11 

6
Bir arkadaş sınıfı kullanarak c ++ 'da birim test özel yöntemi
Bunun tartışmalı bir uygulama olduğunu biliyorum, ama bunun benim için en iyi seçenek olduğunu varsayalım. Bunu yapmak için gerçek tekniğin ne olduğunu merak ediyorum. Gördüğüm yaklaşım şudur: 1) Test etmek istediğim yöntemin sınıf arkadaş sınıfını yapın. 2) Arkadaş sınıfında, sınanan sınıfın özel yöntemlerini çağıran genel bir yöntem (ler) oluşturun. 3) …

1
Rust'un sahiplik modeline genel bir C ++ sarmalayıcıyla ulaşmak mümkün mü?
Rust'un eşzamanlılık güvenliği hakkındaki bu makaleyi inceleyerek: http://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html Bu fikirlerden kaçının C ++ 11'de (veya daha yenisinde) başarılabileceğini merak ediyordum. Özellikle, sahipliğini geçirilebilecek herhangi bir yönteme aktaran bir sahip sınıfı oluşturabilir miyim? Görünüşe göre C ++, imkansız olacağını değişkenleri geçmek için pek çok yolu var, ama belki bazı şablon kodu …

2
Bu iyi bir model mi? Uzun bir işlevi bir dizi lambda ile değiştirmek mi?
Son zamanlarda aşağıdaki durumla karşılaştım. class A{ public: void calculate(T inputs); } İlk olarak, Afiziksel dünyada, sınıfı bölmemek için güçlü bir argüman olan bir nesneyi temsil eder. Şimdi, calculate()oldukça uzun ve karmaşık bir fonksiyon olduğu ortaya çıktı. Bunun için üç olası yapı algılarım: bir metin duvarı olarak yaz - avantajlar …
14 c++11  lambda 

1
Nesne yaşam boyu değişmezler ve taşıma semantiği
C ++ 'ı uzun zaman önce öğrendiğimde, C ++' ın noktasının bir kısmının, döngülerin "döngü değişmezlerine" sahip olması gibi, sınıfların da nesnenin ömrü ile ilişkili değişmezleri olduğu gerçeği vurgulandı - doğru olması gereken şeyler çünkü nesne canlı. Yapıcılar tarafından kurulması ve yöntemlerle korunması gereken şeyler. Kapsülleme / erişim kontrolü, değişmezleri …

1
Üst düzey liste işlevleri için C ++ 11 desteği
Çoğu fonksiyonel programlama dilleri (mesela Common Lisp, Scheme / Raket, Clojure, Haskell, Scala, Ocaml, SML) gibi listelerde bazı ortak yüksek mertebeden fonksiyonları desteklemek map, filter, takeWhile, dropWhile, foldl, foldrmesela (bkz , Common Lisp, Scheme / Racket Clojure yan yana referans sayfası , Haskell , Scala , OCaml ve SML belgeleri.) …

2
C ++ 11'de auto_ptr kullanımdan kaldırma için tasarım değişiklikleri nasıl ele alınır?
C ++ 11 (yani -std=c++11) altında bir kitaplığı test ediyoruz . Kütüphane auto_ptrşunları kullanır : Foo* GetFoo() { autoptr<Foo> ptr(new Foo); // Initialize Foo ptr->Initialize(...); // Now configure remaining attributes ptr->SomeSetting(...); return ptr.release(); } C ++ 11 kullanımdan kaldırıldı auto_ptr, bu yüzden ondan uzaklaşmak istiyoruz. Ancak, kod hem C ++ …
12 design  c++  c++11 

3
C ++ 11 ile ileri uyumluluk elde etme
Birkaç platformda çalışması gereken büyük bir yazılım uygulaması üzerinde çalışıyorum. Bu platformlardan bazıları C ++ 11'in bazı özelliklerini (örn. MSVS 2010) destekler, bazıları ise desteklemez (örn. GCC 4.3.x). Bu durumun birkaç yıl devam etmesini bekliyorum (en iyi tahminim: 3-5 yıl). Bu göz önüne alındığında, ben (mümkün olan her dereceye kadar) …
12 c++  c++11 


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.