«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).


2
#Pragma bir zamanlar C ++ 11 standardının bir parçası mı?
Geleneksel olarak, C ++ 'da birden fazla başlık eklemesini önlemenin standart ve taşınabilir yolu, makro koruma şeması olarak#ifndef - #define - #endif da adlandırılan derleyici öncesi yönergeler şemasını kullanmaktır (aşağıdaki kod snippet'ine bakın). #ifndef MY_HEADER_HPP #define MY_HEADER_HPP ... #endif Bununla birlikte, çoğu uygulamada / derleyicide (aşağıdaki resme bakın), makro koruma …

5
Ne zaman std :: thread :: detach kullanmalıyım?
Bazen std::threadbaşvurumu hızlandırmak için kullanmalıyım . Ayrıca join()bir iş parçacığı tamamlanana kadar beklediğini biliyorum . Bunu anlamak kolaydır, ancak çağırmak detach()ve çağırmamak arasındaki fark nedir? Ben olmadan detach(), iplik yöntemi bağımsız olarak bir iplik kullanarak çalışacağını düşündüm . Sökülmüyor: void Someclass::Somefunction() { //... std::thread t([ ] { printf("thread called without …
140 c++  c++11  stdthread 

12
Kullanıcı tanımlı değişmez değerler C ++ 'a hangi yeni özellikleri ekler?
C ++ 11 tanıtır kullanıcı tanımlı değişmezleri (mevcut değişmezleri dayalı yeni hazır sözdizimi giriş sağlayacak int, hex, string,float ), böylece her türlü değişmez bir sunum için mümkün olacaktır. Örnekler: // imaginary numbers std::complex<long double> operator "" _i(long double d) // cooked form { return std::complex<long double>(0, d); } auto val …

4
Oto'yu neden özel tipte kullanabilirim?
Bir şekilde aşağıdaki kodun derlenip çalıştığına şaşırdım (vc2012 & gcc4.7.2) class Foo { struct Bar { int i; }; public: Bar Baz() { return Bar(); } }; int main() { Foo f; // Foo::Bar b = f.Baz(); // error auto b = f.Baz(); // ok std::cout << b.i; } Bu …

3
Etkili C ++ hala etkili midir?
Bu yazıda gördüklerimden Etkili C ++ kitabını okumaya karar verdim . Ama şimdi C ++ 11 nedeniyle birçok yeni özellik var ve iyi uygulamalardan birkaçının değiştiğine göre, aslında iyi bir fikir olup olmadığından emin değilim. C ++ 11'in ortaya çıkışı, Effective C ++ 'da yer alan tavsiyelerin herhangi birini reddetti …

2
Taşınan bir nesne ile ne yapabilirim?
Standart, bir nesne taşındıktan sonra ne yapabileceğimi kesin olarak tanımlıyor mu? Taşınan bir nesne ile yapabileceğiniz tek şeyin onu yıkmak olduğunu düşünürdüm, ama bu yeterli olmazdı. Örneğin, işlev şablonunu swapstandart kitaplıkta tanımlandığı gibi alın: template <typename T> void swap(T& a, T& b) { T c = std::move(a); // line 1 …

9
Aslında aşırı yüklenmenin bir nedeni var mı? kısa devre yok mu?
Operatörlerin kısa devre davranışı &&ve ||programcılar için harika bir araçtır. Fakat aşırı yüklendiğinde neden bu davranışı kaybediyorlar? Operatörlerin fonksiyonlar için sadece sözdizimsel şeker olduğunu anlıyorum, ancak operatörler boolbu davranışa sahipler, neden bu tek tiple sınırlandırılmalı? Bunun arkasında herhangi bir teknik gerekçe var mı?

10
Std :: array ile C dizi başlatma “int arr [] = {e1, e2, e3,…}” davranışını nasıl taklit edebilirim?
(Not: Bu soru, öğelerin sayısını belirtmemek ve yine de iç içe türlerin doğrudan başlatılmasına izin vermek zorunda değildir.) Bu soru , C dizisi için kalan kullanımları tartışmaktadır int arr[20];. On onun cevabı , C diziler son kalelerinden @James Kanze gösterileri biri, benzersiz başlatma özellikleri var: int arr[] = { 1, …



13
Bir parçayı değişken şablon işlevinin bağımsız değişkenlerine nasıl genişletebilirim?
Variadic şablon bağımsız değişkenlerine sahip şablonlanmış bir işlevi düşünün: template<typename Tret, typename... T> Tret func(const T&... t); Şimdi, bir tdeğerler dizim var . func()Tuple değerlerini bağımsız değişken olarak kullanarak nasıl arayabilirim ? bind()İşlev nesnesini, call()işlevli ve aynı zamanda apply()artık eski olan farklı belgelerdeki işlevi okudum . GNU GCC 4.4 uygulamasının …
136 c++  c++11  arguments  tuples 

5
C ++ 11'deki yeni sözdizimi “= default”
Bunu neden hiç yapmam gerektiğini anlamıyorum: struct S { int a; S(int aa) : a(aa) {} S() = default; }; Neden sadece şunu söylemiyoruz: S() {} // instead of S() = default; bunun için neden yeni bir sözdizimi getirelim?
136 c++  c++11 

6
C ++ 11 rasgele kitaplığı kullanarak rasgele sayılar üretme
Başlıktan da anlaşılacağı gibi, yeni C ++ 11 <random>kitaplığını kullanarak rasgele sayılar üretmenin bir yolunu bulmaya çalışıyorum . Bu kod ile denedim: std::default_random_engine generator; std::uniform_real_distribution<double> uniform_distance(1, 10.001); Ben sahip kod ile sorun her derlemek ve çalıştırmak, her zaman aynı numaraları üretir olmasıdır. Öyleyse sorum şu ki, rastgele kütüphanedeki diğer işlevler …
135 c++  c++11  random  range 

4
Lambda'nın parametre tipini ve dönüş tipini bulmak mümkün müdür?
Bir lambda verildiğinde, parametre türünü ve dönüş türünü bulmak mümkün müdür? Evetse, nasıl? Temel olarak, lambda_traitsaşağıdaki şekillerde kullanılabilmesini istiyorum : auto lambda = [](int i) { return long(i*10); }; lambda_traits<decltype(lambda)>::param_type i; //i should be int lambda_traits<decltype(lambda)>::return_type l; //l should be long Arkasındaki motivasyon lambda_traits, bir lambda'yı bağımsız değişken olarak kabul …

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.