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

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


6
Сучасний спосіб фільтрувати контейнер STL?
Повертаючись до C ++ після років C #, мені було цікаво, яким буде сучасний - читайте: C ++ 11 - спосіб фільтрації масиву, тобто як ми можемо досягти чогось подібного до цього запиту Linq: var filteredElements = elements.Where(elm => elm.filterProperty == true); Для того, щоб відфільтрувати вектор елементів ( stringsзаради …
99 c++  c++11  stl 

4
Чому ми копіюємо тоді переміщення?
Десь я побачив код, у якому хтось вирішив скопіювати об’єкт і згодом перемістити його до члена даних класу. Це залишило мене в замішанні в тому, що я думав, що вся справа в тому, щоб уникнути копіювання. Ось приклад: struct S { S(std::string str) : data(std::move(str)) {} }; Ось мої запитання: …

2
Які правила для токена “…” у контексті різних шаблонів?
У C ++ 11 є різні шаблони на зразок цього: template< class T, class... Args > unique_ptr<T> make_unique( Args&&... args ) { return unique_ptr<T>(new T(std::forward<Args>(args)...)); } У цьому є деякі цікавості: Вираз std::forward<Args>(args)...використовує як Argsі argsлише один ...маркер. Крім того std::forward, це неваріадична функція шаблону, яка бере лише один параметр …

6
Ініціалізація масиву членів в ініціалізаторі конструктора
class C { public: C() : arr({1,2,3}) //doesn't compile {} /* C() : arr{1,2,3} //doesn't compile either {} */ private: int arr[3]; }; Я вважаю, що причина полягає в тому, що масиви можна ініціалізувати лише з =синтаксису, тобто: int arr[3] = {1,3,4}; Запитання Як я можу робити те, що хочу …

4
Як реалізована функція std ::?
Згідно з джерелами, які я знайшов, лямбда-вираз по суті реалізується компілятором, створюючи клас із перевантаженим оператором виклику функції та посиланими змінними як членами. Це свідчить про те, що розмір лямбда-виразів варіюється, і з урахуванням достатньої кількості посилальних змінних, розмір яких може бути довільно великим . Антон std::functionповинен мати фіксований розмір …
98 c++  c++11  lambda 

4
Впровадження операторів порівняння за допомогою “кортеж” та “краватка”, хороша ідея?
(Примітка: tupleі tieможе бути взято з Boost , або C ++ 11.) При написанні невеликих структур тільки з двох елементів, я іноді , як правило, вибрати std::pair, так як всі важливі речі вже зроблена для цього типу даних, як operator<для суворого слабкого упорядкування . Недоліками є, однак, досить марні імена …

8
Initializer_list та перемістити семантику
Чи дозволяється мені переміщувати елементи з a std::initializer_list<T>? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); // kosher? } } Оскільки std::intializer_list<T>вимагає особливої ​​уваги компілятора і не має семантики значення, як звичайні контейнери стандартної бібліотеки C ++, …


12
Видалення елемента з вектора, перебуваючи в циклі C ++ 11 діапазон 'for'?
У мене є вектор IInventory *, і я переглядаю список, використовуючи діапазон C ++ 11, щоб робити речі з кожним з них. Зробивши щось із одним, я, можливо, захочу видалити його зі списку та видалити об’єкт. Я знаю, що можу зателефонувати deleteвказівнику в будь-який час, щоб очистити його, але який …
97 c++  vector  for-loop  c++11 

4
Різниця між std :: system_clock і std :: steady_clock?
У чому різниця між std::system_clockі std::steady_clock? (Чудовим є приклад, який ілюструє різні результати / поведінку). Якщо моєю метою є точно виміряти час виконання функцій (наприклад, орієнтир), що було б найкращим вибором між std::system_clock, std::steady_clockі std::high_resolution_clock?
97 c++  c++11  timer  chrono 

7
Як я можу передати std :: unique_ptr у функцію
Як я можу передати a std::unique_ptrу функцію? Скажімо, у мене є такий клас: class A { public: A(int val) { _val = val; } int GetVal() { return _val; } private: int _val; }; Наступне не компілюється: void MyFunc(unique_ptr<A> arg) { cout << arg->GetVal() << endl; } int main(int argc, …
97 c++  c++11  unique-ptr 

3
Які відмінності між поняттями та обмеженнями шаблонів?
Я хочу знати, які семантичні відмінності між повною пропозицією концепцій C ++ та обмеженнями шаблонів (наприклад, обмеження, як з’явилося в Dlang, або нова концепція-lite пропозиція для C ++ 1y ). Що можуть зробити повноцінні концепції, ніж не можуть обмеження шаблонів?
96 c++  c++11  d  c++-concepts 

3
Чому немає std :: stou?
C ++ 11 додав кілька нових функцій перетворення рядків: http://en.cppreference.com/w/cpp/string/basic_string/stoul Він включає stoi (рядок до int), stol (рядок до довгого), stoll (рядок до довгого довгого), stoul (рядок до беззнакового довгого), stoull (рядок до беззнакового довгого довгого). Примітною за його відсутності є функція stou (рядок до беззнаку). Чи є якісь причини, …
96 c++  string  c++11  std 

1
Ініціалізація члена при використанні делегованого конструктора
Я почав випробовувати стандарт C ++ 11, і я знайшов це питання, в якому описано, як викликати ваш ctor з іншого ctor того ж класу, щоб уникнути використання методу init тощо. Зараз я намагаюся те ж саме з кодом, який виглядає приблизно так: hpp: class Tokenizer { public: Tokenizer(); Tokenizer(std::stringstream …

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