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

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

6
Як поєднати хеш-значення в C ++ 0x?
C ++ 0x додає hash<...>(...). Я не зміг знайти hash_combineфункцію, як показано у boost . Який найчистіший спосіб реалізувати щось подібне? Можливо, за допомогою C ++ 0x xor_combine?
87 c++  c++11  boost  hash  std 

6
Як працює діапазон для роботи для звичайних масивів?
У C ++ 11 ви можете використовувати діапазон for, який діє як foreachінші мови. Це працює навіть із простими масивами C: int numbers[] = { 1, 2, 3, 4, 5 }; for (int& n : numbers) { n *= 2; } Звідки воно знає, коли зупинятись? Чи працює це лише …
87 c++  arrays  foreach  c++11 

4
Чи надійні експериментальні особливості сучасного С ++ для довгострокових проектів?
У мене є проект, який в даний час використовує C ++ 11/14, але для цього потрібно щось на зразок std::filesystem, яке доступне лише в C ++ 17, і, отже, у мене немає можливості використовувати його зараз. Однак я бачу, що він доступний у моєму поточному компіляторі як std::experimental::filesystem. Чи є …

1
C ++ 11: Кількість параметрів функції варіативного шаблону?
Як я можу отримати підрахунок кількості аргументів для функції варіативного шаблону? тобто: template<typename... T> void f(const T&... t) { int n = number_of_args(t); ... } Який найкращий спосіб реалізувати number_of_argsу вищезазначеному?

3
C ++ 11 дозволяє ініціалізацію в класі нестатичних та неконстантних членів. Що змінилося?
До C ++ 11 ми могли виконувати ініціалізацію в класі лише для статичних членів const цілого або типу перелічення. Страуструп обговорює це у своїх запитаннях щодо C ++ , наводячи такий приклад: class Y { const int c3 = 7; // error: not static static int c4 = 7; // …

8
C ++ 11 emplace_back на векторі <struct>?
Розглянемо таку програму: #include &lt;string&gt; #include &lt;vector&gt; using namespace std; struct T { int a; double b; string c; }; vector&lt;T&gt; V; int main() { V.emplace_back(42, 3.14, "foo"); } Це не працює: $ g++ -std=gnu++11 ./test.cpp In file included from /usr/include/c++/4.7/x86_64-linux-gnu/bits/c++allocator.h:34:0, from /usr/include/c++/4.7/bits/allocator.h:48, from /usr/include/c++/4.7/string:43, from ./test.cpp:1: /usr/include/c++/4.7/ext/new_allocator.h: In instantiation …
87 c++  c++11 


10
Досить друкований std :: кортеж
Це продовження мого попереднього запитання щодо досить друкованих контейнерів STL , для якого нам вдалося розробити дуже елегантне та повністю загальне рішення. На цьому наступному кроці я хотів би включити досить друк для std::tuple&lt;Args...&gt;використання різноманітних шаблонів (отже, це суворо C ++ 11). Бо std::pair&lt;S,T&gt;я просто кажу std::ostream &amp; operator&lt;&lt;(std::ostream &amp; …

16
Як кодувати оператор за модулем (%) в C / C ++ / Obj-C, який обробляє від’ємні числа
Один із моїх домашніх улюбленців ненавидить мови, похідні від С (як математика), - це (-1) % 8 // comes out as -1, and not 7 fmodf(-1,8) // fails similarly Яке найкраще рішення? С ++ допускає можливість шаблонів та перевантаження оператора, але обидва вони для мене каламутні. приклади з вдячністю отримані.

4
Чому функція-член const може змінити статичний член даних?
У наступній C++програмі зміна статичного елемента даних із constфункції працює нормально: class A { public: static int a; // static data member void set() const { a = 10; } }; Але модифікація нестатичного члена даних із constфункції не працює: class A { public: int a; // non-static data member …

4
Чи можу я використовувати C ++ 11 з Xcode?
Я розглядаю можливість використання деяких функцій C ++ 11 (як, autoнаприклад,) у деяких крос-платформних проектах (Windows + Mac). У Windows Visual Studio підтримує частини майбутнього стандарту C ++ 11, що дозволить мені спростити частини кодової бази, тому, природно, мені було б цікаво почати використовувати ці функції. Але, наскільки мені відомо, …
86 c++  xcode  gcc  c++11  clang 

5
Розуміння std :: atomic :: compare_exchange_weak () у C ++ 11
bool compare_exchange_weak (T&amp; expected, T val, ..); compare_exchange_weak()є одним із примітивів порівняння-обміну, представлених у C ++ 11. Він слабкий у тому сенсі, що повертає false, навіть якщо значення об'єкта дорівнює expected. Це пов’язано з помилковим збоєм на деяких платформах, де для його реалізації використовується послідовність інструкцій (замість однієї, як на …

2
Ефективність C ++ 11 push_back () з std :: move versus emplace_back () для вже побудованих об'єктів
У C ++ 11, emplace_back()як правило, кращий (з точки зору ефективності), push_back()оскільки він дозволяє побудову на місці, але чи все ще це стосується використання push_back(std::move())з уже побудованим об'єктом? Наприклад, чи emplace_back()все-таки є кращим у таких випадках? std::string mystring("hello world"); std::vector&lt;std::string&gt; myvector; myvector.emplace_back(mystring); myvector.push_back(std::move(mystring)); // (of course assuming we don't care …

8
Звуження конверсій у C ++ 0x. Це лише я, чи це звучить як надзвичайна зміна?
C ++ 0x збирається зробити наступний код та подібний код неправильно сформованим, оскільки він вимагає так званого перетворення звуження a doubleна a int. int a[] = { 1.0 }; Мені цікаво, чи застосовується такий тип ініціалізації в реальному коді. Скільки коду буде порушено цією зміною? Чи багато зусиль, щоб виправити …

13
Чи мінливе ключове слово C ++ вводить паркан пам'яті?
Я розумію, що volatileповідомляє компілятору про те, що значення може бути змінено, але для того, щоб виконати цю функціональність, чи потрібно компілятору вводити огорожу пам'яті, щоб він працював? Наскільки я розумію, послідовність операцій з нестабільними об’єктами не може бути впорядкована і повинна бути збережена. Це, мабуть, означає, що деякі огорожі …

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