Вопросы по теме 'c++20'
Разве `std::shared_ptr` не должен использовать `std::default_delete` по умолчанию?
std::default_delete может быть специализированным , чтобы разрешить std::unique_ptr для безболезненного управления типами, которые должны быть уничтожены, путем вызова некоторого пользовательского уничтожения -function вместо использования...
1536 просмотров
schedule
24.10.2023
Библиотека дат С++ не работает с часовым поясом
Это когда-то играл. Я пытаюсь получить некоторые данные из библиотеки 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 просмотров
schedule
29.09.2022
Являются ли 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