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

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

4
Що нам говорить авто &&?
Якщо ви читаєте код, як auto&& var = foo(); де fooбудь-яка функція, що повертається за значенням типу T. Тоді varє значення посилання на значення rvalue типу T. Але що це означає var? Це означає, що нам дозволено красти ресурси var? Чи є якісь обґрунтовані ситуації, коли вам слід, auto&&щоб повернути …

6
Як увімкнути C ++ 11 у Qt Creator?
Назва досить описова. Я завантажив Qt Creator 2.7.0, і я намагаюся скласти деякий базовий код C ++ 11: int my_array[5] = {1, 2, 3, 4, 5}; for(int &x : my_array) { x *= 2; } Я отримую таку помилку: range based for loops are not allowed in c++ 98 mode …
167 c++  qt  c++11 

8
Захоплення лямбда як посилання на const?
Чи можливо зафіксувати через посилання const в лямбдаському виразі? Я хочу, щоб завдання, позначене нижче, не вдалося, наприклад: #include <cstdlib> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { string strings[] = { "hello", "world" }; static const size_t num_strings = sizeof(strings)/sizeof(strings[0]); string best_string = "foo"; for_each( …
166 c++  c++11  lambda  c++14 

3
Чому я повинен уникати std :: enable_if у підписах функції
Скотт Майєрс опублікував зміст та статус своєї наступної книги EC ++ 11. Він написав, що одним із пунктів у книзі може бути "Уникати std::enable_ifфункціональних підписів" . std::enable_if може використовуватися як аргумент функції, як тип повернення або як шаблон шаблону або параметр шаблону функції для умовного видалення функцій або класів із …

11
Як автоматично перетворити сильно набраний enum в int?
#include <iostream> struct a { enum LOCAL_A { A1, A2 }; }; enum class b { B1, B2 }; int foo(int input) { return input; } int main(void) { std::cout << foo(a::A1) << std::endl; std::cout << foo(static_cast<int>(b::B2)) << std::endl; } Це a::LOCAL_Aте, чого намагається досягти сильно набраний перерахунок, але є …

6
Чи можуть віртуальні функції мати параметри за замовчуванням?
Якщо я оголошу базовий клас (або клас інтерфейсу) і вказую значення за замовчуванням для одного або декількох його параметрів, чи повинні похідні класи задавати однакові за замовчуванням, а якщо ні, то які за замовчуванням будуть проявлятися у похідних класах? Додаток: Мене також цікавить, як це може бути оброблено в різних …
164 c++  c++11  c++03 

7
Які переваги використання nullptr?
Цей фрагмент коду концептуально робить те саме для трьох покажчиків (безпечна ініціалізація вказівника): int* p1 = nullptr; int* p2 = NULL; int* p3 = 0; І так, які переваги присвоєння покажчиків nullptrперед присвоєнням їм значень NULLчи 0?
163 c++  c++11  null  c++-faq  nullptr 

3
Чому конверсія з рядка є постійною в "char *", діє в C, але недійсна в C ++
Стандарт C ++ 11 (ISO / IEC 14882: 2011) говорить § C.1.1: char* p = "abc"; // valid in C, invalid in C++ Для C ++ це нормально, оскільки вказівник на Stral Literal є шкідливим, оскільки будь-яка спроба змінити його призводить до збоїв. Але чому він дійсний у С? С …
163 c++  c  string  c++11  char 

7
std :: функція проти шаблону
Завдяки C ++ 11 ми отримали std::functionсімейство функторних обгортків. На жаль, я продовжую чути лише погані речі щодо цих нових доповнень. Найпопулярнішим є те, що вони жахливо повільні. Я тестував це, і вони справді смоктали в порівнянні з шаблонами. #include <iostream> #include <functional> #include <string> #include <chrono> template <typename F> …


2
Використання розумних покажчиків для учнів класу
У мене виникають проблеми з розумінням використання смарт-покажчиків як членів класу в C ++ 11. Я багато читав про розумні покажчики і, думаю, я розумію, як unique_ptrі shared_ptr/ weak_ptrв цілому працювати. Що я не розумію, це справжнє використання. Схоже, всі рекомендують використовувати unique_ptrяк шлях, який потрібно пройти майже весь час. …


6
Переміщення захоплення в лямбда
Як я можу зафіксувати переміщення (також відоме як посилання на значення rvalue) у лямбі C ++ 11? Я намагаюся написати щось подібне: std::unique_ptr<int> myPointer(new int); std::function<void(void)> example = [std::move(myPointer)]{ *myPointer = 4; };

7
std :: enable_if умовно скласти функцію члена
Я намагаюся отримати простий приклад для роботи, щоб зрозуміти, як користуватися std::enable_if. Прочитавши цю відповідь , я подумав, що придумати простий приклад не повинно. Я хочу використовувати std::enable_ifдля вибору двох функцій-членів і дозволити використовувати лише одну з них. На жаль, наступне не компілюється з gcc 4.7, а після годин та …
156 c++  templates  g++  c++11 

3
Коли використовувати std :: вперед для пересилання аргументів?
C ++ 0x показує приклад використання std::forward: template<class T> void foo(T&& arg) { bar(std::forward<T>(arg)); } Коли вигідно використовувати std::forwardзавжди? Крім того, він вимагає використання &&в декларації параметрів, чи він дійсний у всіх випадках? Я думав, що вам доведеться передати тимчасові функції до функції, якщо функція була оголошена &&в ній, тож …

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