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

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

4
Чи автоматичні змінні C_11 thread_local автоматично статичні?
Чи існує різниця між цими двома сегментами коду: void f() { thread_local vector<int> V; V.clear(); ... // use V as a temporary variable } і void f() { static thread_local vector<int> V; V.clear(); ... // use V as a temporary variable } Передісторія: спочатку я мав СТАТИЧНИЙ вектор V (для …

1
Кодування Unicode для рядкових літералів в C ++ 11
Після відповідного запитання я хотів би запитати про нові типи символів і рядкових літералів у C ++ 11. Здається, що зараз у нас є чотири типи символів і п’ять типів рядкових літералів. Типи персонажів: char a = '\x30'; // character, no semantics wchar_t b = L'\xFFEF'; // wide character, no …

13
Чи можна визначити кількість елементів класу переліку c ++?
Чи можна визначити потужність c ++ enum class: enum class Example { A, B, C, D, E }; Я намагався використовувати sizeof, однак, він повертає розмір елемента перерахування. sizeof(Example); // Returns 4 (on my architecture) Чи існує стандартний спосіб отримати потужність (5 у моєму прикладі)?

5
std :: array проти продуктивності масиву
Якщо я хочу побудувати дуже простий масив типу int myArray[3] = {1,2,3}; Чи слід використовувати std::arrayзамість цього? std::array<int, 3> a = {{1, 2, 3}}; Які переваги використання std :: array перед звичайними? Це ефективніше? Просто простіше керувати копією / доступом?
85 c++  c++11  stdarray 

4
c ++ 0x: правильний спосіб отримати лямбда-параметр як параметр за посиланням
Який правильний спосіб визначити функцію, яка отримує int->intлямбда-параметр за посиланням? void f(std::function< int(int) >& lambda); або void f(auto& lambda); Я не впевнений, що остання форма - це навіть юридичний синтаксис. Чи існують інші способи визначення лямбда-параметра?

6
Як перевірити, чи все ще працює потік std ::?
Як я можу перевірити, чи std::threadвсе ще працює a (незалежно від платформи)? У ньому бракує timed_join()методу, і joinable()він не призначений для цього. Я думав зафіксувати мьютекс за допомогою а std::lock_guardу потоці та використати try_lock()метод мьютексу, щоб визначити, чи він все ще заблокований (потік запущений), але мені здається це надмірно складним. …

6
Потрібен ітератор, коли використовується цикл на основі діапазону
На даний момент я можу робити лише цикли на основі діапазону з цим: for (auto& value : values) Але іноді мені потрібен ітератор значення, а не посилання (З якоїсь причини). Чи існує який-небудь метод без необхідності проходити весь вектор, порівнюючи значення?
84 c++  c++11  for-loop  iterator 

5
Enum проти сильно набраного enum
Я новачок у програмуванні на C ++. Сьогодні я натрапляю на нову тему: сильно набрана enum. Я трохи досліджував це, але дотепер я не можу з'ясувати, навіщо це нам потрібно і яка користь від того самого? Наприклад, якщо ми маємо: enum xyz{a, b, c}; /*a = 0, b = 1, …
84 c++  c++11  enums 

1
C ++ 11 make_pair із зазначеними параметрами шаблону не компілюється
Я просто бавився з g ++ 4.7 (одним із пізніших знімків) з увімкненим -std = c ++ 11. Я намагався скомпілювати деякі мої існуючі основи коду, і один випадок, який не вдався, дещо бентежить мене. Буду вдячний, якщо хтось зможе пояснити, що відбувається. Ось код: #include <utility> #include <iostream> #include …

11
Як отримати цілочисельний ідентифікатор потоку в c ++ 11
c ++ 11 має можливість отримати поточний ідентифікатор потоку, але його не можна передати цілочисельному типу: cout<<std::this_thread::get_id()<<endl; вихід: 139918771783456 cout<<(uint64_t)std::this_thread::get_id()<<endl; помилка: недійсне приведення з типу 'std :: thread :: id' до типу 'uint64_t' те саме для інших типів: недійсне приведення з типу 'std :: thread :: id' до типу 'uint32_t' …

3
Повторне використання переміщеного контейнера?
Який правильний спосіб повторного використання переміщеного контейнера? std::vector<int> container; container.push_back(1); auto container2 = std::move(container); // ver1: Do nothing //container2.clear(); // ver2: "Reset" container = std::vector<int>() // ver3: Reinitialize container.push_back(2); assert(container.size() == 1 && container.front() == 2); З того, що я прочитав у стандартному проекті C ++ 0x; ver3 здається правильним …

9
Як я можу сортувати два вектори однаково, з критеріями, що використовує лише один із векторів?
Як я можу сортувати два вектори однаково, з критеріями, що використовує лише один із векторів? Наприклад, припустимо, у мене є два вектори однакового розміру: vector<MyObject> vectorA; vector<int> vectorB; Потім я сортую, vectorAвикористовуючи якусь функцію порівняння. Це сортування впорядковано vectorA. Як я можу застосувати те саме переупорядкування vectorB? Одним із варіантів …
84 c++  c++11 

6
Якщо оператор проти оператора if-else, що швидше? [зачинено]
Закрито . Це питання має бути більш сфокусованим . Наразі відповіді не приймаються. Хочете покращити це питання? Оновіть питання, щоб воно зосереджувалось на одній проблемі, лише відредагувавши цю публікацію . Закрито 3 роки тому . Удосконалюйте це питання Днями я сперечався з другом про ці два фрагменти. Що швидше і …

3
Чи є переповнене цілочисельним переповненням все ще невизначеною поведінкою в C ++?
Як ми знаємо, переповнення цілим числом із підписом є невизначеною поведінкою . Але в документації C ++ 11 є щось цікаве cstdint: підписаний цілочисельний тип із шириною рівно 8, 16, 32 та 64 біта відповідно без бітів заповнення та використовуючи доповнення 2 для від’ємних значень (надається лише у тому випадку, …

4
Як пройти std :: unique_ptr?
У мене перша спроба використовувати C ++ 11 unique_ptr; Я замінюю поліморфний сирий вказівник всередині мого проекту, який належить одному класу, але передається досить часто. Раніше у мене були такі функції, як: bool func(BaseClass* ptr, int other_arg) { bool val; // plain ordinary function that does something... return val; } …
83 c++  c++11  unique-ptr 

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