«c++11» etiketlenmiş sorular

C ++ 11 olarak derlenmesi gereken kod için bu etiketi kullanın (C ++ 14 veya sonraki sürümlerde sunulan hiçbir özelliği kullanmayın).


3
“Bu * için rvalue referansı” nedir?
Clang'ın C ++ 11 durum sayfasında "this * için rvalue referansı" adlı bir teklifle karşılaştım . Rvalue referanslarını biraz okudum ve anladım, ama bunu bildiğimi sanmıyorum. Ayrıca terimleri kullanarak web üzerinde çok fazla kaynak bulamadım. Sayfadaki teklif belgesine bir bağlantı var: N2439 (Hareket semantiğini * buna genişletme), ancak oradan da …


1
std :: C ++ 11 etkinleştirilirken vektör performans regresyonu
C ++ 11'i etkinleştirdiğimde küçük bir C ++ snippet'inde ilginç bir performans regresyonu buldum: #include <vector> struct Item { int a; int b; }; int main() { const std::size_t num_items = 10000000; std::vector<Item> container; container.reserve(num_items); for (std::size_t i = 0; i < num_items; ++i) { container.push_back(Item()); } return 0; } …
235 c++  performance  gcc  c++11  vector 

4
Neden emplace_back yerine push_back kullanmalıyım?
C ++ 11 vektörleri yeni işleve sahiptir emplace_back. push_backKopyalardan kaçınmak için derleyici optimizasyonlarından farklı olarak , emplace_backyerinde bir nesne oluşturmak için bağımsız değişkenleri doğrudan yapıcıya göndermek için mükemmel yönlendirme kullanır. Bana öyle emplace_backgeliyor ki her şey push_backyapabiliyor, ama bazen bunu daha iyi yapacak (ama asla kötü olmayacak). Hangi sebebi kullanmam …
232 c++  c++11  std 


10
Lambda fonksiyonları ayarlanabiliyor mu?
C ++ 11'de lambda işlevini şablonlamanın bir yolu var mı? Yoksa tabiatı gereği çok özel mi? Bunun yerine klasik şablonlu sınıf / functor tanımlayabildiğimi anlıyorum, ancak soru daha çok benziyor: dil lambda işlevlerini ayarlamaya izin veriyor mu?
230 c++  templates  lambda  c++11 

4
Ne zaman işaretçi kullanırım?
Tamam, son kez C ++ 'ı bir yaşam için yazdım std::auto_ptr, std lib'in mevcut olduğu ve boost::shared_ptrtüm öfke oldu. Ben gerçekten sağlanan diğer akıllı işaretçi türleri artış içine baktım. C ++ 11'in artık bazı türlerde artış sağladığını anlıyorum, ancak hepsini değil. Peki birisinin hangi akıllı işaretçiyi ne zaman kullanacağını belirlemek …

10
C ++ 11'de hangi kırılma değişiklikleri getirildi?
Bazı eski kod derleme durmasına neden olacak C + + 11 değişikliklerden en az birini biliyorum: explicit operator bool()standart kütüphaneye giriş, eski örnekleri yerine operator void*(). Verilen, bunun kırılacağı kod muhtemelen ilk etapta geçerli olmaması gereken bir koddur, ancak yine de hala bir değişikliktir: eskiden geçerli olan programlar artık geçerli …
227 c++  c++11 



14
C ++ 11 otomatik anahtar kelimesi ile ne kadar çok şey var?
autoC ++ 11 standardında mevcut olan yeni anahtar kelimeyi, bunun için tasarlandığına inandığım karmaşık şablonlu türler için kullanıyorum. Ama aynı zamanda şu gibi şeyler için kullanıyorum: auto foo = std::make_shared<Foo>(); Ve daha şüpheci olanlar: auto foo = bla(); // where bla() return a shared_ptr<Foo> Bu konuda çok fazla tartışma görmedim. …

2
Neden unique_ptr öğesini bir vektör içine itemiyorum?
Bu programda sorun nedir? #include <memory> #include <vector> int main() { std::vector<std::unique_ptr<int>> vec; int x(1); std::unique_ptr<int> ptr2x(&x); vec.push_back(ptr2x); //This tiny command has a vicious error. return 0; } Hata: In file included from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/mingw32/bits/c++allocator.h:34:0, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/allocator.h:48, from c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/memory:64, from main.cpp:6: c:\mingw\bin\../lib/gcc/mingw32/4.5.0/include/c++/bits/unique_ptr.h: In member function 'void __gnu_cxx::new_allocator<_Tp>::construct(_Tp*, const _Tp&) [with _Tp …

6
make_unique ve mükemmel yönlendirme
std::make_uniqueStandart C ++ 11 kitaplığında neden işlev şablonu yok ? buldum std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); biraz ayrıntılı. Aşağıdakiler çok daha hoş olmaz mıydı? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); Bu newgüzel gizler ve sadece bir kez türü bahseder. Her neyse, işte benim uygulama girişimim make_unique: template<typename T, typename... Args> …


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.