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

Разве `std::shared_ptr` не должен использовать `std::default_delete` по умолчанию?
std::default_delete может быть специализированным , чтобы разрешить std::unique_ptr для безболезненного управления типами, которые должны быть уничтожены, путем вызова некоторого пользовательского уничтожения -function вместо использования...
1536 просмотров

Библиотека дат С++ не работает с часовым поясом
Это когда-то играл. Я пытаюсь получить некоторые данные из библиотеки C++ date , но возникает исключение. я компилирую с -DUSE_AUTOLOAD=0 -DHAS_REMOTE_API=0 -DUSE_OS_TZDB=1 что не так с кодом? #include <iostream> #include...
478 просмотров
schedule 17.11.2022

Почему std::atomic_ref не реализован с точки зрения std::atomic
Ссылочная реализация std::atomic_ref из документа P0019r8 примерно сохраняет тип шаблона как переменную-член ( https://github.com/ORNL/cpp-proposals-pub/blob/master/P0019/atomic_ref.hpp ) и использует встроенные модули GNU для реализации атомарных...
824 просмотров
schedule 13.03.2024

Может ли параметр шаблона, не являющийся типом, иметь тип void *?
Якк - Адам Неврамонт сказал : Нетиповые параметры шаблона типа void* не допускаются по крайней мере в некоторых версиях стандарта. Это правда? Если это правда, то в каких версиях стандарта нетиповые параметры шаблона типа void*...
354 просмотров
schedule 07.10.2023

Контейнер в стиле `std::array` с поддержкой распределителя?
Я пишу некоторый код, который обрабатывает криптографические секреты, и я создал пользовательскую ZeroedMemory реализацию std::pmr::memory_resource , которая обрабатывает очистку памяти при освобождении и инкапсулирует, используя магию, которую вы...
249 просмотров
schedule 26.12.2023

Почему в C ++ 20 удален оператор! = Для многих типов стандартных библиотек?
Согласно cppreference , std::type_info::operator!= удаляется с C ++ 20, однако, std::type_info::operator== видимо остается. В чем причина? Я мог бы согласиться с тем, что сравнение на предмет неравенства бессмысленно, но тогда сравнение на...
2973 просмотров

Являются ли inline и noexcept избыточными в контексте consteval?
Я работаю с некоторым кодом, в котором используются constexpr функции, которые я в настоящее время реорганизую, чтобы быть consteval , когда это возможно. inline constexpr auto example() noexcept { /*...*/ } Насколько я понимаю ,...
246 просмотров
schedule 11.12.2023

Почему C ++ 20 не использует `requires` для ограничения T для атомарного ‹T›?
Общий std::atomic<T> должен иметь T , который является Copy Constructible и Copy Assignable : [atomics.types.generic] / 1 Программа плохо сформирована , если (1.1) is_­trivially_­copyable_­v<T> ,...
186 просмотров
schedule 11.07.2022

Могу ли я инициализировать указатель на функцию в стиле C объекта во время компиляции, чтобы он вызывал функцию-член объекта?
Я пишу класс для обертки библиотеки, требующей указателей на функции обратного вызова. См. ниже: struct LibraryConfig { // Omitting other members... void (*callback)(const char *); }; class MyClass { private: LibraryConfig m_config;...
88 просмотров
schedule 12.10.2023

Почему в С++ виртуальные функции не признают тип класса агрегатом?
В 11.6.1 сказано: Агрегат — это [snip] класс с нет виртуальных функций [отрезать] Это почему? Почему мы не хотели, чтобы агрегат имел виртуальные функции? Каково обоснование дизайна?
155 просмотров
schedule 14.03.2024

Модули C ++: включены ли сторонние файлы в обычные заголовки, если сначала включен стандартный библиотечный модуль?
Я начинаю экспериментировать с реализацией модулей C ++ в Microsoft Visual Studio. Microsoft разделяет стандартную библиотеку на пять модулей : std.regex std.filesystem std.memory std.threading std.core Я заменил свои стандартные...
555 просмотров
schedule 03.10.2023

Почему C++ диапазоны transform -> вызовы фильтра преобразуются дважды для значений, соответствующих предикату фильтра?
Рассмотрим следующий код, использующий библиотеку диапазонов (из С++ 20) #include <iostream> #include <ranges> #include <vector> int main() { std::vector<int> inputs{1, 2, 3, 4, 5, 6}; auto square_it = [](auto i)...
425 просмотров
schedule 10.10.2022

Как я могу получить стандартную библиотеку c ++ 20?
Как мне получить sys_seconds? Я использую / usr / bin / c ++ в Ubuntu 20.04 для компиляции следующего фрагмента: RCLCPP_WARN_STREAM(get_logger(), "Time: " << std::chrono::sys_seconds(time_.seconds())); и я получаю следующую...
115 просмотров
schedule 07.08.2022

Краткий способ указать, что меня не волнует аргумент шаблона аргумента моей функции?
Рассмотрим следующий код: int64_t signed_vector_size(const std::vector v){ return (int64_t)v.size(); } Это не работает, так как std::vector является шаблоном. Но моя функция работает для каждого T! Простое решение - просто сделать 1)...
105 просмотров
schedule 31.10.2022

Унаследованный синтезированный оператор сравнения выдает предупреждение / ошибку: ISO C ++ 20 рассматривает использование перегруженного оператора '! ='
В следующем фрагменте кода clang 11.0.1 генерирует предупреждение template <class T> struct iterator_facade { template<class S> bool operator==(const S &other) const noexcept { return static_cast<const T...
139 просмотров
schedule 01.09.2022

Вызывают ли концепции С++ создание экземпляров шаблонов для создания выходных данных?
Мне кажется, что для библиотек со многими большими и сложными экземплярами шаблонов одним из основных соображений при принятии решения об использовании концепций будет уменьшение размера выходных данных сборки. Насколько я понимаю, с SFINAE...
69 просмотров
schedule 13.11.2023

Лучший способ использовать конструктор как функцию в std::transform?
Я пытался указать только конструктор в качестве последнего аргумента преобразования, но это не сработало, так как в C++ вы не можете взять адрес конструктора, но и сигнатура не будет соответствовать, конструктор не имеет возвращаемого значения. Я...
142 просмотров
schedule 12.05.2024

Пользовательский контейнер не работает с std :: range
Я не могу заставить мои пользовательские контейнеры работать с std :: range. Мой контейнер работает, если итератор - это просто int* , но как только я создаю свой собственный класс итератора, я получаю ошибки компилятора. Это работает. #include...
88 просмотров
schedule 26.11.2023

Использование typename в C ++ 20 требует / concept?
Обратите внимание на следующую программу на C ++ 20: #include <iostream> template<typename T> struct A { using X = typename T::X; }; template<typename T> constexpr bool WorksWithA = requires { typename A<T>; }; struct...
102 просмотров
schedule 05.10.2022

Должен ли я использовать исключения для проверки правильности ввода?
Я использую gcc10.2 , c++20 . Я изучаю c++ после 2 лет на python. В python мы всегда проверяли правильность ввода во время выполнения. def createRectangle(x, y, width, height): # just for example for v in [x, y, width, height]: if...
67 просмотров
schedule 25.07.2022