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

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


3
Що таке "посилання на оцінку для цього *?"
На сторінці статусу C ++ 11 кланг потрапила пропозиція під назвою "rvalue reference for * this" . Я читав досить багато про посилання на оцінку і розумів їх, але не думаю, що знаю про це. Я також не міг знайти багато ресурсів в Інтернеті, використовуючи умови. На сторінці розміщено посилання …


1
std :: векторна регресія продуктивності при включенні C ++ 11
Я знайшов цікаву регресію ефективності в невеликому фрагменті C ++, коли я вмикаю C ++ 11: #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 …
235 c++  performance  gcc  c++11  vector 

4
Чому я коли-небудь використовувати push_back замість emplace_back?
C ++ 11 векторів мають нову функцію emplace_back. На відміну від того push_back, що покладається на оптимізацію компілятора, щоб уникнути копій, emplace_backвикористовує ідеальну переадресацію для передачі аргументів безпосередньо конструктору для створення об’єкта на місці. Мені здається, що emplace_backвсе push_backможе зробити, але якийсь час це зробить краще (але ніколи не гірше). …
232 c++  c++11  std 

4
Чи може використання "авто" C ++ 11 покращити продуктивність?
Я можу зрозуміти, чому autoтип C ++ 11 покращує правильність та ремонтопридатність. Я читав, що це також може покращити продуктивність ( Майже завжди Автоматичний Герб Саттер), але я пропускаю хороше пояснення. Як можна autoпокращити продуктивність? Хтось може навести приклад?
230 c++  performance  c++11  auto 

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

4
Який тип покажчика я використовую, коли?
Гаразд, тож востаннє, коли я писав C ++ на життя, std::auto_ptrбув у всіх наявних std ліб, і він boost::shared_ptrбув весь гнів. Я ніколи насправді не роздивлявся, якщо передбачено збільшення інших типів розумних вказівників. Я розумію, що C ++ 11 надає деякі типи прискорених типів, але не всі. Так у когось …

10
Які переломні зміни вводяться в C ++ 11?
Я знаю, що принаймні одна зі змін C ++ 11, яка призведе до припинення компіляції старого коду: введення explicit operator bool()в стандартну бібліотеку, заміна старих екземплярів operator void*(). Зрозуміло, що код, який буде порушено, - це, мабуть, код, який у першу чергу не мав би бути дійсним, але все-таки все-таки …
227 c++  c++11 

5
Чи ключове слово "переосмислити" - це лише перевірка перекритого віртуального методу?
Наскільки я розумію, введення overrideключового слова в C ++ 11 є не більше ніж перевірка , щоб переконатися , що функція реалізується є overrideІНГ з virtualфункції в базовому класі. Це все?


14
Скільки коштує занадто багато ключових слів C ++ 11?
Я використовую нове autoключове слово, доступне в стандарті C ++ 11, для складних шаблонових типів, для чого я вважаю, що він був розроблений. Але я також використовую його для таких речей, як: auto foo = std::make_shared<Foo>(); І більш скептично: auto foo = bla(); // where bla() return a shared_ptr<Foo> Я …

2
Чому я не можу не повернути унікальний_ptr у вектор?
Що не так з цією програмою? #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; } Помилка: 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&) …

6
make_unique та ідеальне переадресація
Чому std::make_uniqueв стандартній бібліотеці C ++ 11 немає шаблону функцій? я знайшов std::unique_ptr<SomeUserDefinedType> p(new SomeUserDefinedType(1, 2, 3)); трохи багатослівний. Не було б наступне набагато приємніше? auto p = std::make_unique<SomeUserDefinedType>(1, 2, 3); Це newдобре приховує і лише один раз згадує тип. У будь-якому випадку, ось моя спроба реалізації make_unique: template<typename T, …

4
Цикл на основі діапазону C ++ 11: отримання елемента за значенням або посиланням на const
Читаючи деякі приклади циклів на основі діапазону, вони пропонують два основні способи 1 , 2 , 3 , 4 std::vector<MyClass> vec; for (auto &x : vec) { // x is a reference to an item of vec // We can change vec's items by changing x } або for (auto …
215 c++  c++11 

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