C++23 является целью версии C++ после C++20. Этот тег следует использовать (вместе с тегом C++) для вопросов о функциях C++, которые находятся в разработке для C++23.
1 ответ

Статическое отражение с ++ TS: будет ли он поддерживать назначение / вызов по имени?

Существует техническая спецификация C++ по статическому отражению (текущий проект PDF и страница cppreference ), которая может перейти на C++ 23 или более позднюю версию . Возможно ли в текущем черновике (я понимаю, что синтаксис, возможно, еще не и…
14 мар '21 в 16:52
1 ответ

Позволяет ли текущий черновик сформировать набор перегрузки, состоящий из двух объявлений нестатических членов, у одного из которых есть квалификатор ref.

В basic.scope#scope-3.3.1 говорится обе объявляют функции с одним и тем же списком-тип-параметра, эквивалентными ([temp.over.link]) конечными требующими-предложениями (если есть, кроме указанных в [temp.friend]) и, если оба являются нестатическими ч…
15 мар '21 в 12:55
2 ответа

Какова временная сложность std :: string :: contains в C ++ 23?

Cppreference говорит std::string::containsвыходит, https://en.cppreference.com/w/cpp/string/basic_string/contains но нет требований к среде выполнения. Гарантированно ли он работает в линейном времени? (скажем, с использованием алгоритма KMP в реали…
20 мар '21 в 07:58
2 ответа

Планируется ли пересмотр интерфейса std::allocator для будущих версий C++?

В своем выступлении в 2015 году Андрей Александреску описывает некоторые зверства интерфейса std::allocator, вкратце подчеркивая, что на самом деле речь идет не о распределении, и предлагает другой способ мышления об этих распределителях, который сд…
25 мар '21 в 15:27
1 ответ

Правильность лямбда-выражения с пропущенным списком параметров в C++23

Согласно cppreference , и gcc, и clang недавно завершили реализацию P1102R2 («Сделать () более необязательным для лямбда-выражений »), что означает, что мы можем более точно определять лямбда-выражения в C++23. Но я обнаружил, что они несовместимы с…
27 мар '21 в 19:02
2 ответа

C++23 - Каковы преимущества класса stacktrace_entry?

Когда этот класс в файле заголовка будет добавлен к языку, с какими проблемами мы сможем справиться легче и какие синтаксисы планируется заменить? Ниже я делюсь кодом, полученным с веб-сайта cppreference . Класс std::stacktrace_entry namespace std {…
03 май '21 в 15:28
1 ответ

Нужны ли для этого метаклассы или достаточно рефлексии?

Так что я с нетерпением ждал появления метаклассов . Затем я услышал, что этого не будет в C ++23c ++23, поскольку они думают, что нам сначала нужно отражение и реификация в языке, прежде чем мы добавим метаклассы. Просматривая отражение в , кажется…
1 ответ

Разбор целого числа со специализированными литералами в C++ без регулярного выражения

Я создал функцию, которая принимает аргумент std::string_view и возвращается bool квалифицируется ли данная строка как целое число или нет. Я включил унарные операторы - а также + по каким-то причинам. я использовал starts_with метод проверки префик…
14 май '21 в 17:53
2 ответа

Что означает примечание 1 в правилах поиска имени члена класса C++?

Из http://eel.is/c++draft/class.member.lookup#1 : Поиск в области для имени из точки программы P представляет собой единый поиск в течение от пока не это область действия класса или шаблона класса , и в этом случае следующие шаги определяют результа…
31 май '21 в 22:59
1 ответ

Как std::spanstream обычно используется в C++?

<spanstream>дебютирует в C++23 (см. cppreference). По предложению это струнные потоки с std::span на основе буферов. Мои вопросы: Делает std::spanstream имеют в некотором роде эквивалентное использование старых std::strstream (или же strstrea…
10 июн '21 в 18:36
0 ответов

Изменилось ли требование о том, как переопределить виртуальную функцию?

Пожалуйста, посмотрите этот пример #include <iostream> class B{ public: virtual void fun() &{ //#1 std::cout<<"base\n"; } }; class A:public B{ public: void fun(){ //#2 std::cout<<"override\n"; } }; int main(){ A a; B* ptr = &am…
16 июн '21 в 11:56
1 ответ

В чем разница между split_view и lazy_split_view в C ++?

Я прочитал последний черновик, куда добавлен. Но позже я понял, что его переименовали в lazy_split_view, а split_view был обновлен. libstdc++ также недавно реализовал это с помощью GCC Trunkверсия https://godbolt.org/z/9qG5T9n5h У меня есть простая …
21 июн '21 в 15:02
1 ответ

Что делать, если нужен констевал?

C++23 представит if consteval. Где это будет использоваться и чем оно отличается от constexpr if?
01 июл '21 в 18:29
1 ответ

Что означают адаптеры диапазона default_constructible в C ++ 23?

Начиная с C++23, s больше не требуется. Для адаптеров диапазона, таких как views::filter и views::transform, их конструктор по умолчанию переопределяется как: template<input_­range V, indirect_­unary_­predicate<iterator_t<V>> Pred>…
11 июл '21 в 18:00
1 ответ

Кодирование независимого синтаксического анализа с помощью c ++2b

Иногда мне приходится разбирать текстовые файлы с различными кодировками, мне интересно, появятся ли в будущем стандарте какие-то инструменты для этого, потому что я не очень доволен своим текущим решением. Я даже не уверен, что это правильный подхо…
1 ответ

(С ++23 неявное перемещение) Возврат перемещенной переменной локального хранилища как rvalue ref только с круглыми скобками?

https://isocpp.org/files/papers/P2266R1.html P2266R1 Simpler implicit move Published Proposal, 2021-03-13 Arthur O'Dwyer Я не уверен, правильно ли я понимаю эти новые «допустимые к перемещению» вещи. Исправьте эти пункты, если они неверны: [LIVE] st…
1 ответ

отражение TS - в C ++ 23?

Reflection TS - функция C++, описанная здесь:https://en.cppreference.com/w/cpp/keyword/reflexpr Я ищу любую информацию об этой функции. У меня есть таблица с описанием поддержки компилятора:https://en.cppreference.com/w/cpp/compiler_support но я не …
12 авг '21 в 19:21
1 ответ

Попытка понять std :: inout_ptr и std :: out_ptr в C ++ 23

Я читаю список изменений библиотеки, предложенных для C++23, и мне очень любопытно std::out_ptr а также std::inout_ptr (их _tбратья и сестры). Насколько я понимаю, это своего рода оболочка для интеллектуальных указателей, совместимых с необработанны…
25 авг '21 в 10:07
1 ответ

Почему C++23 string::resize_and_overwrite вызывает операцию как rvalue?

Для повышения производительности записи данных в C++23 специально введен resize_and_overwrite() для std::string. В [string.capacity] стандарт описывает это следующим образом: template<class Operation> constexpr void resize_and_overwrite(size_t…
18 окт '21 в 12:57
0 ответов

Почему в стандартной карте C++ нет «указателя возврата на отображаемое значение»? [закрыто]

Кроме operator[] и at() метод, поиск ключа в std::map или std::unordered_mapдолжен использовать итератор, и итератор должен быть проверен перед использованием связанного значения. Это справедливо. Сейчас contains() был добавлен к этим контейнерам, н…
15 окт '21 в 21:04