Pytania otagowane jako c++11

Użyj tego znacznika do kodu, który musi zostać skompilowany jako C ++ 11 (nie używając żadnych funkcji wprowadzonych w C ++ 14 lub nowszej).

8
Optymalizacja z dala od „while (1);” w C ++ 0x
Zaktualizowano, patrz poniżej! Słyszałem i przeczytałem, że C ++ 0x umożliwia kompilatorowi wydrukowanie „Hello” dla następującego fragmentu kodu #include <iostream> int main() { while(1) ; std::cout << "Hello" << std::endl; } Najwyraźniej ma to coś wspólnego z wątkami i możliwościami optymalizacji. Wydaje mi się jednak, że może to zaskoczyć wielu …

7
Czy mądrze jest zamienić boost :: thread i boost :: mutex na odpowiedniki c ++ 11?
Motywacja: powód, dla którego rozważam to, że mój genialny kierownik projektu uważa, że ​​doładowanie jest kolejną zależnością i że jest okropne, ponieważ "jesteś od niego zależny" (próbowałem wyjaśnić jakość wzmocnienia, ale po pewnym czasie zrezygnowałem :( Mniejszym powodem, dla którego chciałbym to zrobić, jest to, że chciałbym nauczyć się funkcji …

6
Co dzieje się z odłączonym wątkiem po zakończeniu działania funkcji main ()?
Załóżmy, że zaczynam std::threada detach(), więc wątek kontynuuje wykonywanie, mimo że ten, std::threadktóry kiedyś go reprezentował, wykracza poza zakres. Załóżmy ponadto, że program nie ma niezawodnego protokołu do przyłączania się do odłączonego wątku 1 , więc odłączony wątek nadal działa po zakończeniu main(). Nie mogę znaleźć niczego w standardzie (a …

6
Dlaczego miałbym std :: przenieść std :: shared_ptr?
Przeglądałem kod źródłowy Clang i znalazłem ten fragment: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } Dlaczego miałbym chcieć ?std::movestd::shared_ptr Czy jest jakiś sens przenoszenia własności do udostępnionego zasobu? Dlaczego nie miałbym po prostu tego zrobić? void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = Value; }



4
Używanie zmiennej składowej na liście przechwytywania lambda wewnątrz funkcji składowej
Poniższy kod kompiluje się z gcc 4.5.1, ale nie z VS2010 SP1: #include <iostream> #include <vector> #include <map> #include <utility> #include <set> #include <algorithm> using namespace std; class puzzle { vector<vector<int>> grid; map<int,set<int>> groups; public: int member_function(); }; int puzzle::member_function() { int i; for_each(groups.cbegin(),groups.cend(),[grid,&i](pair<int,set<int>> group){ i++; cout<<i<<endl; }); } int …

7
Automatyczne słowo kluczowe C ++. Dlaczego to magia?
Z całego materiału, którego używałem do nauki C ++, autozawsze był dziwny specyfikator czasu przechowywania, który nie służył żadnemu celowi. Ale niedawno napotkałem kod, który używał go jako nazwy typu. Spróbowałem z ciekawości i przyjmuje on rodzaj tego, co mu przydzielę! Nagle iteratory STL i, cóż, wszystko, co używa szablonów, …
145 c++  types  c++11  auto 

12
Dlaczego ktoś miałby używać set zamiast unordered_set?
Wprowadzamy C ++ 0x, unordered_setktóry jest dostępny w boostwielu innych miejscach. Rozumiem, że unordered_setjest to tabela skrótów ze O(1)złożonością wyszukiwania. Z drugiej strony setto nic innego jak drzewo o log(n)złożoności wyszukiwania. Dlaczego, u licha, ktoś miałby używać setzamiast unordered_set? tj. czy jest już taka potrzeba set?

1
Jaka logika kryje się za słowem kluczowym „using” w C ++?
Jaka logika kryje się za słowem kluczowym „using” w C ++? Jest używany w różnych sytuacjach i staram się sprawdzić, czy wszystkie mają ze sobą coś wspólnego i istnieje powód, dla którego słowo kluczowe „using” jest używane jako takie. using namespace std; // to import namespace in the current namespace …
145 c++  c++11 



14
Rekurencyjne funkcje lambda w C ++ 11
Jestem nowy w C ++ 11. Piszę następującą rekurencyjną funkcję lambda, ale nie kompiluje się. sum.cpp #include <iostream> #include <functional> auto term = [](int a)->int { return a*a; }; auto next = [](int a)->int { return ++a; }; auto sum = [term,next,&sum](int a, int b)mutable ->int { if(a>b) return 0; …
143 c++  c++11  lambda 

4
Czy wartość przekazywana jest rozsądną wartością domyślną w C ++ 11?
W tradycyjnym C ++ przekazywanie wartości do funkcji i metod jest powolne w przypadku dużych obiektów i generalnie jest źle widziane. Zamiast tego programiści C ++ mają tendencję do przekazywania referencji, co jest szybsze, ale wprowadza różnego rodzaju skomplikowane pytania dotyczące własności, a zwłaszcza zarządzania pamięcią (w przypadku, gdy obiekt …
142 c++  coding-style  c++11 


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.