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

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

8
Коли я дійсно повинен використовувати noexcept?
noexceptКлючове слово може бути відповідним чином застосовано до багатьох сигнатури функцій, але я НЕ впевнений , про те , коли слід розглянути можливість використання його на практиці. Виходячи з того, що я читав до цих пір, додавання в останню хвилину, noexceptздається, стосується деяких важливих питань, які виникають, коли конструктори руху …

6
Які основні цілі використання std :: forward та які проблеми вона вирішує?
У ідеальній переадресації std::forwardвикористовується для перетворення названих посилань на rvalue t1та t2в неназвані посилання rvalue. Яка мета цього робити? Як би це вплинуло на викликану функцію, innerякщо ми залишимо t1& t2як lvalues? template <typename T1, typename T2> void outer(T1&& t1, T2&& t2) { inner(std::forward<T1>(t1), std::forward<T2>(t2)); }

6
C ++ 11 переоцінює та змішує зміщення семантики (виписка із повернення)
Я намагаюся зрозуміти рецензії на значення і перемістити семантику C ++ 11. Яка різниця між цими прикладами, і який із них не буде робити жодної векторної копії? Перший приклад std::vector<int> return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; return tmp; } std::vector<int> &&rval_ref = return_vector(); Другий приклад std::vector<int>&& return_vector(void) { std::vector<int> tmp {1,2,3,4,5}; …


6
Як передати аргумент унікального_ptr конструктору чи функції?
Я новачок, щоб перемістити семантику в C ++ 11, і я не знаю дуже добре, як обробляти unique_ptrпараметри в конструкторах або функціях. Розглянемо цей клас із посиланням на себе: #include <memory> class Base { public: typedef unique_ptr<Base> UPtr; Base(){} Base(Base::UPtr n):next(std::move(n)){} virtual ~Base(){} void setNext(Base::UPtr n) { next = std::move(n); …


10
Симпатичні друковані контейнери C ++ STL
Зверніть увагу на оновлення в кінці цієї публікації. Оновлення: Я створив публічний проект на GitHub для цієї бібліотеки! Я хотів би мати єдиний шаблон, який раз і назавжди піклується про гарне надрукування всіх контейнерів STL через operator<<. У псевдокоді я шукаю щось подібне: template<container C, class T, String delim = …

9
Що таке std :: обіцянка?
Я досить знайомий з C ++ 11 std::thread, std::asyncіstd::future компоненти (наприклад , див цей відповідь ), які є прямо вперед. Однак я не можу повністю зрозуміти, що std::promiseтаке, що робить і в яких ситуаціях найкраще використовувати. Сам стандартний документ не містить у собі великої кількості інформації поза конспектом класу, а …

1
Шаблон C ++ typedef
У мене клас template<size_t N, size_t M> class Matrix { // .... }; Я хочу зробити a, typedefякий створює Vector(вектор стовпця), який еквівалентний a Matrixз розмірами N та 1. Щось таке: typedef Matrix<N,1> Vector<N>; Що створює помилку компіляції. Далі створюється щось подібне, але не зовсім те, що я хочу: template …
368 c++  templates  c++11  typedef 

5
Повернення унікальних_ptr з функцій
unique_ptr<T>не дозволяє створювати копію, натомість підтримує семантику переміщення. Тим не менш, я можу повернути a unique_ptr<T>з функції і призначити повернене значення змінній. #include <iostream> #include <memory> using namespace std; unique_ptr<int> foo() { unique_ptr<int> p( new int(10) ); return p; // 1 //return move( p ); // 2 } int main() …
367 c++  c++11  unique-ptr 

5
Компіляція C ++ 11 з g ++
Я намагаюся оновити свій компілятор C ++ до C ++ 11. Я шукав трохи , і я прийшов до висновку , що я повинен використовувати прапор -std=c++0xабо -std=gnu++0x, але я не знаю багато про прапори. Хтось може мені допомогти? (Я використовую Ubuntu 12.04.) Ось помилка, яку я отримую від компілятора, …
367 c++  c++11  g++  flags 

14
Як активувати C ++ 11 в CMake?
Коли я намагаюся запустити створений CMake makefile для компіляції своєї програми, я отримую помилку в цьому діапазон на основі циклів не підтримується в режимі C ++ 98. Я спробував додати add_definitions(-std=c++0x)до свого CMakeLists.txt, але це не допомогло. Я також спробував це: if(CMAKE_COMPILER_IS_GNUCXX) add_definitions(-std=gnu++0x) endif() Коли я це роблю g++ --version, …
356 c++11  cmake 

6
std :: unique_lock <std :: mutex> або std :: lock_guard <std :: mutex>?
На цей питання є відповіді на Stack Overflow на російському : Чем std :: unique_lock отличается от std :: lock_guard? У мене є два випадки використання. A. Я хочу синхронізувати доступ двома потоками до черги. B. Я хочу синхронізувати доступ двома потоками до черги та використовувати змінну умови, оскільки одна …

14
Коли слід використовувати здатність constexpr в C ++ 11?
Мені здається, що мати "функцію, яка завжди повертає 5", це порушує або розбавляє значення "виклику функції". Повинно бути причина чи потреба в цій здатності, або це не було б в C ++ 11. Чому саме там? // preprocessor. #define MEANING_OF_LIFE 42 // constants: const int MeaningOfLife = 42; // constexpr-function: …
337 c++  c++11  constexpr 


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