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

C ++ 20 - ціль для версії C ++ після C ++ 17. Цей тег слід використовувати (разом із тегом C ++) для запитань щодо функцій C ++, відстежуваних для C ++ 20.

1
Яким чином shift_right () призначений для впровадження в C ++ 20?
У C ++ 20 <algorithm>заголовок отримує два нові алгоритми: shift_left()іshift_right() . Вони обидва приймають будь-якого LegacyForwardIterator. Бо shift_left()визначено, що "ходи виконуються у порядку зростання, iпочинаючи з ​0"; для shift_right(), зазначено, що "якщо ForwardItвідповідає вимогам LegacyBidirectionalIterator, то переміщення виконуються у порядку зменшення, iпочинаючи з last - first - n - 1". …

4
Сховати порожній базовий клас для сукупної ініціалізації
Розглянемо наступний код: struct A { // No data members //... }; template<typename T, size_t N> struct B : A { T data[N]; } Ось так потрібно ініціалізувати B: B<int, 3> b = { {}, {1, 2, 3} }; Я хочу уникнути зайвого порожнього {} для базового класу. Існує рішення …

1
Який еквівалент MSVC для -fno-char8_t?
У C ++ 20 u8рядкових літералів базуються на char8_tтипі. Вони навмисно більше не перетворюються char const*: const char* str = u8"Hall\u00f6chen \u2603"; // no longer valid in C++20 Звичайно, кінцева мета при переході на C ++ 20 - цілком піти з новою поведінкою (у прикладі вище: змінити тип str). Однак …

1
Чи варто UB відновити функцію члена члена об'єкта, термін експлуатації якого закінчився?
Це питання випливає з цього коментаря: пояснення життя Ламбди для C ++ 20 спільних процедур щодо цього прикладу: auto foo() -> folly::coro::Task<int> { auto task = []() -> folly::coro::Task<int> { co_return 1; }(); return task; } Таким чином, питання полягає в тому, чи fooне призведе до виконання повернутої кореневищем UB. …

1
Невказане неявне створення об'єкта
Оскільки P0593 було прийнято неявне створення об'єктів для маніпулювання об'єктами низького рівня , об'єкти тепер можуть створюватися неявно в C ++ 20. Зокрема, формулювання, введене пропозицією, дозволяє певним операціям (таким як std::malloc) автоматично створювати та запускати тривалість життя об'єктів певних типів, так званих неявних типів життя , якщо введення таких …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.