«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
C ++ 03 throw () belirleyicisi arasındaki fark C ++ 11 noexcept
Herhangi arasındaki fark var mı throw()ve noexceptsırasıyla çalışma zamanı ve derleme zamanında, kontrol ediliyor dışındaki? Bu Wikipedia C ++ 11 makalesi , C ++ 03 atma tanımlayıcılarının kullanımdan kaldırıldığını önermektedir. Neden öyleyse, noexcepttüm bunları derleme zamanında kapsayacak kadar yetenekli mi? [Not: Bu soruyu kontrol ettim ve bu makaleyi , ancak …
100 c++  exception  c++11  throw  noexcept 

3
Gcc std :: unordered_map uygulaması yavaş mı? Öyleyse neden?
C ++ ile yüksek performanslı kritik bir yazılım geliştiriyoruz. Orada eşzamanlı bir hash haritasına ihtiyacımız var ve bir tane uyguluyoruz. Bu nedenle, eşzamanlı hash haritamızın ne kadar yavaş olduğunu anlamak için bir kıyaslama yazdık std::unordered_map. Ancak, std::unordered_mapinanılmaz derecede yavaş görünüyor ... Yani bu bizim mikro ölçütümüz (eşzamanlı harita için kilitlemenin …

2
Std :: result_of ve decltype arasındaki fark
std::result_ofC ++ 0x'in ihtiyacını anlamakta biraz sorun yaşıyorum . Doğru anladıysam, result_ofbelirli türde parametrelerle bir işlev nesnesini çağırmanın sonuç türünü elde etmek için kullanılır. Örneğin: template <typename F, typename Arg> typename std::result_of<F(Arg)>::type invoke(F f, Arg a) { return f(a); } Aşağıdaki kodla farkı gerçekten görmüyorum: template <typename F, typename Arg> …
100 c++  c++11  decltype  result-of 


12
C ++ 11 'for' döngüsünde iken vektörden öğe kaldırılıyor mu?
Bir IInventory * vektörüne sahibim ve her biriyle bir şeyler yapmak için C ++ 11 aralığını kullanarak listede dönüyorum. Biriyle bazı şeyler yaptıktan sonra, onu listeden çıkarmak ve nesneyi silmek isteyebilirim. deleteİşaretçiyi temizlemek için istediğim zaman çağırabileceğimi biliyorum , ancak aralık fordöngüsündeyken onu vektörden kaldırmanın doğru yolu nedir? Ve onu …
100 c++  vector  for-loop  c++11 

4
Std :: function nasıl uygulanır?
Bulduğum kaynaklara göre, bir lambda ifadesi esasen derleyici tarafından aşırı yüklenmiş işlev çağrısı operatörü ve üye olarak başvurulan değişkenler içeren bir sınıf yaratarak uygulanıyor. Bu, lambda ifadelerinin boyutunun değiştiğini ve boyutun keyfi olarak büyük olabileceği yeterli referans değişkenleri verildiğini gösterir . An sabit bir boyutastd::function sahip olmalıdır , ancak aynı …
100 c++  c++11  lambda 

3
C ++ 11'de std :: function boş olup olmadığı nasıl doğru bir şekilde kontrol edilir?
A'nın std::functionboş olup olmadığını nasıl doğru bir şekilde kontrol edeceğimi merak ediyordum . Şu örneği düşünün: class Test { std::function<void(int a)> eventFunc; void registerEvent(std::function<void(int a)> e) { eventFunc = e; } void doSomething() { ... eventFunc(42); } }; Bu kod MSVC'de gayet iyi derlenir, ancak kodu doSomething()başlatmadan ararsam eventFuncaçıkça çöker. …
100 c++  c++11  std-function 

2
Variadic şablonlar bağlamında “…” simgesi için kurallar nelerdir?
C ++ 11'de bunun gibi çeşitli şablonlar vardır: template< class T, class... Args > unique_ptr<T> make_unique( Args&&... args ) { return unique_ptr<T>(new T(std::forward<Args>(args)...)); } Bazı Meraklısına bu konuda vardır: ifadesi std::forward<Args>(args)...hem kullanır Argsve argsancak sadece bir ...belirteç. Ayrıca std::forward, yalnızca bir şablon parametresi ve bir bağımsız değişken alan, değişken olmayan …

6
STL kabını filtrelemenin modern yolu?
Yıllarca C #'dan sonra C ++ 'ya geri dönersek, modern olanın - okuyun: C ++ 11 - bir diziyi filtreleme yolunun ne olacağını merak ediyordum, yani bu Linq sorgusuna benzer bir şeyi nasıl başarabiliriz: var filteredElements = elements.Where(elm => elm.filterProperty == true); Bir element vektörünü filtrelemek stringsiçin (bu soru uğruna)? …
99 c++  c++11  stl 

4
Neden kopyalayıp taşıyoruz?
Birinin bir nesneyi kopyalamaya ve ardından onu bir sınıfın veri üyesine taşımaya karar verdiği bir yerde kodu gördüm. Bu, hareket etmenin tüm amacının kopyalamaktan kaçınmak olduğunu düşündüğüm için kafamı karıştırdı. İşte örnek: struct S { S(std::string str) : data(std::move(str)) {} }; İşte sorularım: Neden bir rvalue referansı almıyoruz str? Özellikle …

5
Std :: system_clock ve std :: steady_clock arasındaki fark?
Arasındaki fark nedir std::system_clockve std::steady_clock? (Farklı sonuçları / davranışları gösteren örnek bir vaka harika olurdu). Amacım, işlevlerin (bir kıyaslama gibi) uygulama süresini kesin olarak ölçmekse std::system_clock, std::steady_clockve arasında en iyi seçim ne olur std::high_resolution_clock?
98 c++  c++11  timer  chrono 

4
Karşılaştırma operatörlerini "tuple" ve "tie" aracılığıyla uygulamak, iyi bir fikir mi?
(Not: tupleve tieBoost veya C ++ 11'den alınabilir.) Yalnızca iki öğeli küçük yapılar yazarken std::pair, operator<katı-zayıf sıralama gibi tüm önemli şeyler bu veri türü için zaten yapıldığından, bazen a seçme eğilimindeyim. . Olumsuz yönleri, oldukça işe yaramaz değişken isimleridir. Kendimi o yarattı bile typedef, ben 2 gün sonra hatırlamayacaksınız firstve …

8
initializer_list ve semantiği taşı
Elemanları a'nın dışına taşımama izin var std::initializer_list<T>mı? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); // kosher? } } Yana std::intializer_list<T>özel derleyici dikkat gerektiren ve C ++ standardı kütüphanesinde normal kaplarda gibi değer anlambilim yok, ben daha …

1
Temsilci oluşturucu kullanılırken üye başlatma
C ++ 11 standardını denemeye başladım ve bir init yöntemine veya benzerine sahip olmaktan kaçınmak için ctor'unuzu aynı sınıftaki başka bir ctor'dan nasıl çağıracağınızı açıklayan bu soruyu buldum . Şimdi aynı şeyi şuna benzeyen kodla deniyorum: hpp: class Tokenizer { public: Tokenizer(); Tokenizer(std::stringstream *lines); virtual ~Tokenizer() {}; private: std::stringstream *lines; …

6
Std :: initializer_list neden yerleşik bir dil değil?
Neden std::initializer_listbir çekirdek dil yerleşik değil ? Bana öyle geliyor ki, C ++ 11'in oldukça önemli bir özelliği ve yine de kendi ayrılmış anahtar kelimesine (veya benzer bir şeye) sahip değil. Bunun yerine, initializer_listbu kadar sadece özel, örtülü sahiptir standart kütüphaneden bir şablon sınıfı eşlemesi yeni gelen hazırladı-init-liste {...} derleyici …

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.