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

Использование параметра шаблона в общей лямбда-выражении
GCC допускает следующий синтаксис в качестве расширения: // a functional object that will add two like-type objects auto add = [] <typename T> (T a, T b) { return a + b; }; В n3418 предложение 2012 г. по общие лямбда-выражения, мы...
3086 просмотров
schedule 13.06.2023

enum to string в современных C ++ 11 / C ++ 14 / C ++ 17 и будущих C ++ 20
В отличие от всех других подобных вопросов, этот вопрос касается использования новых функций C ++. 2008 c Есть ли простой способ преобразовать перечисление C ++ в строку? 2008 c Простой способ использовать переменные перечислимого типа...
234157 просмотров
schedule 11.07.2023

При использовании модулей С++ есть ли причина отделять объявления функций (файлы .hpp) от их определений (файлы .cpp)?
Я привык писать код без модулей, где файлы заголовков содержат объявления функций, например: // foo.h class Foo { void bar(); }; и соответствующий файл .cpp содержит определение: // foo.cpp #include "foo.h" void Foo::bar() { //...
3270 просмотров
schedule 11.05.2024

Что такое промежуток и когда мне его использовать?
Недавно я получил предложения использовать span<T> в моем коде или видел здесь на сайте несколько ответов, которые используют span - предположительно, какой-то контейнер. Но - я не могу найти ничего подобного в стандартной библиотеке C ++...
83275 просмотров

Может ли пространство имен (быть/удовлетворять) концепции?
Я знаю, что предложение C++ Concepts предназначено, возможно, среди прочего, для наложения ограничений на параметры шаблона (скажем, на «последовательность») в текущей ситуации, в которой все, что удается скомпилировать, достаточно хорошо (и сообщения...
113 просмотров

Цикл понятий C++
Я хотел бы попросить компилятор проверить, содержит ли кортеж только «метатипы». Кстати, я совершенно новичок в концепциях С++. template < typename T > struct Type { using type = T; }; //! A type can be easily check with a small...
410 просмотров

С++ 17, устаревшие функции в стандартной библиотеке «памяти»?
Я только что понял, что некоторые функции стандартной библиотеки динамического управления памятью были устарело в C++17 . Например, get_temporary_buffer : template< class T > std::pair< T*, std::ptrdiff_t > get_temporary_buffer(...
687 просмотров

Стоит ли основывать битовый контейнер, не являющийся владельцем, на std::vector‹bool›? станд::промежуток?
В нескольких моих проектах мне все чаще приходилось иметь дело с непрерывными последовательностями битов в памяти - эффективно (*). До сих пор я написал кучу встраиваемых автономных функций, основанных на выборе типа «контейнера битов» (например,...
211 просмотров
schedule 27.06.2023

Как я могу заполнить chrono::year текущим годом?
Итак, из этого вопроса я понимаю, что целое число, используемое при построении chrono::year соответствует Anno Domini происхождение 0. Итак, мой вопрос: что, если я хочу получить текущий chrono::year . Есть ли функция для этого? Я,...
131 просмотров
schedule 01.02.2024

Что такое объекты точек настройки и как их использовать?
В последнем черновике стандарта C++ представлены так называемые «объекты точки настройки» ( [customization .point.object] ), которые широко используются библиотекой диапазонов. Кажется, я понимаю, что они предоставляют способ написания...
4543 просмотров
schedule 26.07.2023

Шаблон C++20 ‹auto› с типом пользователя приводит к несоответствию типа T/const T в GCC 9
Я пытаюсь использовать нестандартный шаблон с пользовательским типом. struct T {}; template <auto value> struct U {}; template <auto value> void f (U <value>) {} int main() { constexpr T t; f (U<1>{}); //...
236 просмотров
schedule 26.12.2022

Конструктор преобразования варианта С++ с bool
В cppreference (4) конструктор преобразования описывается следующим образом: Преобразующий конструктор. Создает вариант, содержащий альтернативный тип T_j , который был бы выбран разрешением перегрузки для выражения...
459 просмотров
schedule 22.07.2022

Сопрограммы C ++ 20: реализация ожидаемого будущего
Поскольку Coroutines TS был принят в C ++ 20 на встрече ISO в Kona, я начал немного поиграться с ними для себя. Clang уже имеет приличную поддержку сопрограмм, но реализация поддержки библиотеки все еще отсутствует. В частности, еще не реализованы...
2172 просмотров
schedule 01.01.2023

Почему std::move не [[nodiscard]] в С++ 20?
Недавно я прочитал о [[nodiscard]] в C++17, и, насколько я понимаю, это новая функция (дизайн по контракту?), которая заставляет вас использовать возвращаемое значение. Это имеет смысл для спорных функций, таких как std::launder (nodiscard...
2494 просмотров
schedule 04.07.2023

Будет ли законно, чтобы std::set был специализирован для (u)int8 и символов с использованием набора битов и общего статического массива?
В основном это вопрос языкового юриста, я сомневаюсь, что большинство реализаций будут беспокоить, тем более что это, вероятно, увеличит время компиляции для каждого пользователя. При этом: если какая-то реализация std::set была реализована с...
338 просмотров
schedule 08.01.2023

Разветвления C ++ 20, требующие дополнения до двух
C ++ 20 будет указывать, что подписанные интегральные типы должны используйте дополнение до двух . Это не кажется большим изменением, учитывая, что (практически?) Каждая реализация в настоящее время использует два дополнения. Но мне было...
1550 просмотров

С++ 20 'char8_t' такой же, как наш старый 'char'?
В документации справочника CPP, Я заметил для char Типы символов достаточно велики, чтобы представлять любую восьмибитную кодовую единицу UTF-8 (начиная с C++14). и для char8_t тип для представления символов UTF-8, должен...
9111 просмотров
schedule 01.09.2022

Невозможно прочитать char8_t из basic_stringstream‹char8_t›
Я просто пытаюсь stringstream в UTF-8: #include<iostream> #include<string> #include<sstream> int main() { std::basic_stringstream<char8_t> ss(u8"hello"); char8_t c; std::cout << (ss.rdstate() &...
292 просмотров
schedule 02.07.2022

Почему возвращаемый тип заполнителя не разрешен для сопрограмм?
Согласно спецификации сопрограмм C++20 : Функция, объявленная с возвращаемым типом, который использует тип заполнителя, не должна быть сопрограммой. Почему в таком случае нельзя использовать заполнитель?
281 просмотров
schedule 10.05.2023

Ковариантные возвращаемые типы виртуального constexpr
Насколько я понимаю из этого предложения C++20 снимает ограничения на использование виртуальных функций в контекстах constexpr. Само изменение простое, слова "не должно быть виртуальным" убраны. Обоснование этого, по-видимому, заключается в том,...
95 просмотров
schedule 04.11.2022