Вопросы по теме 'c++20'

Обнаружение непрерывного итератора
C ++ 17 представил концепцию ContiguousIterator http://en.cppreference.com/w/cpp/iterator . Однако не похоже, что есть планы, чтобы contiguous_iterator_tag (точно так же, как у нас сейчас random_access_iterator_tag ) сообщил...
2721 просмотров
schedule 05.03.2022

Чем оператор трехстороннего сравнения отличается от вычитания?
В C ++ 20 появился новый оператор сравнения <=> . Однако я думаю, что в большинстве случаев хорошо работает простое вычитание: int my_strcmp(const char *a, const char *b) { while (*a == *b && *a != 0 && *b != 0) {...
11617 просмотров

Замена для std::rel_ops в С++ 20
Согласно cppreference.com , std::rel_ops операторы помечены как устаревшие, поскольку C+ +20. Что следует использовать вместо этого, начиная с С++ 20?
62 просмотров
schedule 18.10.2023

Существует ли общепринятое название понятия, которое охватывает как ассоциативные, так и неупорядоченные ассоциативные контейнеры?
Предположим, у меня есть функция, которая принимает контейнер и использует для него .insert или .find, то есть это либо неупорядоченный ассоциативный контейнер, либо ассоциативный контейнер. Есть ли общее имя С++ для контейнеров такого типа?
88 просмотров
schedule 30.01.2024

Как использовать атрибут вероятности/маловероятности С++ 20 в операторе if-else
Этот вопрос касается функции [[likely]] / [[unlikely]] С++ 20, а не макросов, определяемых компилятором. В этих документах ( cppreference ) приведен только пример их применения к коммутатору. -деловое заявление. Этот пример с переключателем...
11802 просмотров
schedule 28.02.2022

Контрактное программирование и компиляторы C++2a
Я заинтересован в изучении недавно принятого контрактного программирования для C++20 для целей обучения и исследования. Когда я ищу поддержку компилятора, я разочарован, что не нашел. Как gcc , так и clang совершенно ясно, что они не...
1055 просмотров
schedule 15.09.2022

Концепции C ++: проверка экземпляра шаблона
Предполагая, что у меня есть шаблонный тип, например template<typename A, typename B, typename C> struct mytype { }; Как мне написать концепцию, которая проверяет, является ли тип экземпляром этого шаблона? template<typename...
693 просмотров
schedule 13.01.2024

целые числа со знаком теперь ведут себя по-другому в отношении сдвига влево?
В C++20 целые числа со знаком теперь определяются с использованием дополнения до двух, см. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0907r3..html Это долгожданное изменение, однако один из пунктов списка привлек мое внимание:...
135 просмотров
schedule 22.04.2024

Почему тип CopyConstructible также должен быть MoveConstructible?
Как указано в cppreference , требование для типа T быть CopyConstructible означает, что он также будет MoveConstructible . Черновик концепции STL CopyConstructible содержит: template <class T> concept CopyConstructible =...
339 просмотров
schedule 21.04.2024

Как заполнить std::array диапазоном из range-v3?
Я новичок в библиотеке range-v3. Предположим, я хочу заполнить std::array случайными числами через некоторый интервал. С итераторами я бы сделал что-то вроде этот ответ , передав итераторы моему std::array в качестве аргументов....
861 просмотров
schedule 22.01.2024

Захват лямбда-пакета с многоточием с обеих сторон - что это значит?
P0780 ("Разрешить расширение пакета в lambda init-capture") , одобрено для C+ +20, позволяет создать пакет элементов данных замыкания, поместив многоточие ( ... ) перед расширением пакета как часть лямбда-захвата. Это полезно, например, при...
501 просмотров
schedule 24.03.2022

Почему std::ssize принудительно устанавливается на минимальный размер для его типа размера со знаком?
В C++20 для получения подписанный размер контейнера для универсального кода. (И причина его добавления объясняется здесь .) Несколько странно, что приведенное здесь определение (в сочетании с common_type и ptrdiff_t ) заставляет возвращаемое...
271 просмотров
schedule 19.10.2023

Почему const_cast не работает с аргументами std :: function?
Я предоставляю константные и неконстантные варианты функции-члена, где я повторно использую константную версию для реализации неконстантной версии, как описано в в этом ответе из книг Скотта Мейерса. Версия const принимает аргумент типа:...
514 просмотров
schedule 13.12.2022

is_constant_evaluated() должен создавать переменные constexpr?
Я прочитал определение std::is_constant_evaluated() , но до сих пор не понимаю, почему (1) не работает с последней версией GCC : error: 'x' is not a constant expression template<auto v> struct s {}; constexpr void f(int x) { if...
311 просмотров
schedule 03.12.2023

Есть ли эквивалент boost::irange в C++20?
С объединением диапазонов в C++20 я надеялся, что мы получим эквивалент boost::irange в C++, но поиск в Google ничего не нашел... Я знаю о std::views::iota , но это не то же самое, в частности, перегрузка с одним аргументом начинается, а не...
183 просмотров
schedule 29.05.2022

Будет ли в стандартной библиотеке C ++ концепция арифметических типов?
Я просматривал библиотеку концепций в справочнике по C ++ , и мне не удалось найти концепцию для арифметических типов. Я также не смог найти его в p0898 . Думаю, такая концепция была бы очень кстати. Сделано: template <typename T> T...
1027 просмотров

consteval функция, возвращающая объект с нетривиальным деструктором constexpr
C ++ 20 будет иметь новый consteval ключевое слово и деструктор constexpr Если все будет хорошо. К сожалению, ни один из известных мне компиляторов не реализует consteval в это время. Будет ли действителен следующий код? struct A {...
208 просмотров
schedule 17.12.2023

Как проверить, вернули ли range :: алгоритмы, например, find_if значение?
Например, если я хочу найти наименьший элемент коллекции, но только наименьший элемент даже , я хотел бы вызвать ranges::min_element с отфильтрованным диапазоном следующим образом: using ranges::views::filter; using ranges::min_element;...
243 просмотров
schedule 18.07.2023

Существует ли аналог ranges::views::group_by, который учитывает все элементы, а не только смежные?
В std::ranges C++20 мы можем ожидать получения C++20 1views C++20 1group__by__fn.html" rel="nofollow noreferrer"> views::group_by 1 . Это может быть очень удобно, но во время игры я обнаружил проблему. Из руководства Эрика Ниблера мы можем...
537 просмотров
schedule 25.10.2023

Почему стандарт C++ обрабатывает файл так, как он это делает?
C++ использует тип streamoff для представления смещения в (файловом) потоке и определяется следующим образом в [stream.types]: using streamoff = implementation-defined ; Тип streamoff является синонимом одного из основных...
579 просмотров
schedule 01.03.2022