Запитання з тегом «c++11»

Використовуйте цей тег для коду, який повинен скласти як C ++ 11 (не використовуючи жодних функцій, введених у C ++ 14 або новіших версіях).

8
Оптимізація відключення "в той час (1);" в C ++ 0x
Оновлено, дивіться нижче! Я чув і читав, що C ++ 0x дозволяє компілятору надрукувати "Привіт" для наступного фрагмента #include <iostream> int main() { while(1) ; std::cout << "Hello" << std::endl; } Це, мабуть, має щось спільне з потоками та можливостями оптимізації. Мені здається, що це може здивувати багатьох людей. Хтось …

7
Хіба розумно замінити boost :: thread та boost :: mutex на c ++ 11 еквівалентів?
Мотивація: причина, чому я вважаю, це те, що мій геніальний керівник проекту вважає, що стимул - це ще одна залежність, і що це жахливо, тому що "ти від цього залежить" (я спробував пояснити якість підвищення, а потім через деякий час відмовився :( Менша причина, чому я хотів би це зробити, …

6
Що відбувається з відокремленою ниткою при виході main ()?
Припустимо, я починаю a, std::threadа потім detach()це, тому нитка продовжує виконувати, навіть незважаючи на std::threadте, що колись її представляла, виходить за межі області. Припустимо також, що програма не має надійного протоколу для приєднання від'єднаного потоку 1 , тому відокремлена нитка все ще працює при main()виході. Я нічого не можу знайти …

6
Чому б я std :: перемістити std :: shared_ptr?
Я переглядав вихідний код Clang і знайшов цей фрагмент: void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = std::move(Value); } Чому я хочу ?std::movestd::shared_ptr Чи є якась точка передачі права власності на спільний ресурс? Чому б я просто не зробив це замість цього? void CompilerInstance::setInvocation( std::shared_ptr<CompilerInvocation> Value) { Invocation = Value; }

1
Що станеться, якщо для перерахунку класу static_cast недійсне значення для перерахунку класу?
Розглянемо цей код C ++ 11: enum class Color : char { red = 0x1, yellow = 0x2 } // ... char *data = ReadFile(); Color color = static_cast<Color>(data[0]); Припустимо, що даних [0] насправді 100. Який колір встановлюється відповідно до стандарту? Зокрема, якщо я пізніше switch (color) { // ... …
146 c++  c++11 

5
Що означає йота std :: iota?
Я припускаю, що "я" збільшується, а "а" призначається, але я не міг з'ясувати або знайти відповідь. Крім того, він дуже схожий на нестандартний, itoaякий я вважаю заплутаним.

4
Використання змінної члена у списку захоплення лямбда всередині функції члена
Наступний код компілюється з gcc 4.5.1, але не з 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 main() …

7
Автоматичне ключове слово C ++. Чому це магія?
З усього матеріалу, який я використовував для вивчення C ++, autoзавжди був дивний специфікатор тривалості зберігання, який не виконував ніяких цілей. Але зовсім недавно я зіткнувся з кодом, який використовував його як саме ім'я типу. З цікавості я спробував це, і він передбачає тип того, що мені трапляється, привласнити його! …
145 c++  types  c++11  auto 

12
Чому хтось використовуватиме набір замість unororder_set?
Представляємо C ++ 0x, unordered_setякий доступний у boostбагатьох інших місцях. Я розумію, що unordered_setце хеш-таблиця зі O(1)складністю пошуку. З іншого боку, setце не що інше, як дерево зі log(n)складністю пошуку. Чому б на землі хтось використовував setзамість цього unordered_set? тобто чи є вже потреба set?

1
Яка логіка, що стоїть за ключовим словом "використання" в C ++?
Яка логіка, що стоїть за ключовим словом "використання" в C ++? Він використовується в різних ситуаціях, і я намагаюся знайти, чи всі вони мають щось спільне, і є причина, чому ключове слово "using" використовується як таке. using namespace std; // to import namespace in the current namespace using T = …
145 c++  c++11 

14
Чи є недолік у оголошенні змінних з авто в C ++?
Здається, що autoв C ++ 11 було додано досить значну особливість, яка, здається, відповідає багатьом новим мовам. Як і в такій мові, як Python, я не бачив явної декларації змінної (я не впевнений, чи можливо це за допомогою стандартів Python). Чи є недолік використання autoоголошень змінних, а не явного їх …

10
Яке призначення "остаточного" ключового слова в C ++ 11 для функцій?
Яке призначення finalключового слова в C ++ 11 для функцій? Я розумію, що це перешкоджає переопределенню функцій похідними класами, але якщо це так, то хіба недостатньо оголосити ваші finalфункції невіртуальними ? Чи є інша річ, якої мені тут не вистачає?
143 c++  c++11  final 

14
Рекурсивні лямбда-функції в C ++ 11
Я новачок у С ++ 11. Я пишу наступну рекурсивну лямбда-функцію, але вона не компілюється. 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
Чи розумне значення за промовчанням у програмі C ++ 11?
У традиційному C ++ передача за значенням функцій та методів для великих об'єктів повільна і, як правило, нахмурена. Натомість програмісти на C ++, як правило, передають посилання навколо, що швидше, але це вводить усілякі складні питання щодо власності та особливо щодо управління пам'яттю (у випадку, якщо об’єкт виділено купою) Тепер, …
142 c++  coding-style  c++11 


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.