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

Предотвращение выхода кортежа за пределы с помощью if constexpr
Следующий код отлично компилируется с GCC и Clang, но перестал работать в последнем обновлении Visual Studio (/ std: c ++ latest): #include <tuple> template<int pos, typename... T> void check_tuple(T... types) { if constexpr (pos...
368 просмотров
schedule 16.12.2023

constexpr в for-Statement
c++17 предоставляет if constexpr , в котором: значение условия должно быть контекстно преобразованным постоянным выражением типа bool . Если значение равно true , то оператор-ложь отбрасывается (если присутствует), в противном случае...
3848 просмотров

Сравнение std::string_view и подстроки string_view
Допустим, у нас есть string_view и еще одно string_view, которое является подмножеством первого string_view: using namespace std; // just to shorten the example... string_view s{"abc def"}; auto t = s.substr(4); auto u = s.substr(0, 4); cout...
1318 просмотров
schedule 01.12.2023

Структурированная привязка к const
Предполагается ли компилировать следующий код? #include <type_traits> void foo() { const std::pair<int, int> x = {1, 2}; auto [a, b] = x; static_assert(std::is_const_v<decltype(a)>);...
697 просмотров
schedule 24.12.2023

Привязки Python с использованием pybind11 с std :: filesystem в качестве аргумента функции, дающего TypeError
У меня есть класс Foo (), а у класса Foo () есть функция со следующим объявлением: bool Foo::copyFile(const std::filesystem::path& src, const std::filesystem::path& dest) Требование состоит в том, чтобы у класса Foo были привязки...
692 просмотров
schedule 10.12.2023

Какие структуры данных STL с сохраненным неполным типом можно использовать в качестве члена класса?
Насколько мне известно, начиная с C++17, некоторые структуры данных STL могут "существовать" с неполным типом в качестве параметра шаблона, описывающего хранимый тип. Например, я могу использовать std::unique_ptr<Incomplete> (хотя я не...
216 просмотров
schedule 19.11.2023

Зачем нам нужен std::nullopt
Когда мы можем использовать юниформ-инициализацию, чтобы легко создать по умолчанию std::optional<T> ? std::optional<T> foo() { if (on_error) return {}; // ... } Есть ли недостаток в вышеизложенном, который решает...
1977 просмотров
schedule 01.11.2023

Как связать и сериализовать функции, перегружая | оператор
Я пытаюсь выяснить, как вообще перегрузить operator|() для данного объекта базового класса для сериализации или цепочки вызовов функций, которые аналогичны тому, как работает pipes или operator<<() ... Я хотел бы связать их через оператор...
68 просмотров

Доступ к общим членам структуры в std::variant
Мне трудно понять, как использовать std::variant в C++17. Учитывая две структуры A и B и std::vector<std::variant<A,B>> vs , я хотел бы: Обратитесь к общему члену структуры, например. n ; Вызов общей функции, например....
321 просмотров
schedule 19.11.2023

Ошибка вывода аргумента шаблона C ++ 17
Я хотел смоделировать таймер, который будет периодически вызывать функцию (обратный вызов), для этого я написал следующий фрагмент (хотя и наивный), в котором вывод аргумента не выполняется в строке Timer / ‹int, int, float› /. .в основной функции....
64 просмотров
schedule 18.12.2023

Может ли спецификатор атрибута may_unused появиться только один раз и при этом работать?
Мне нравится атрибут [[maybe_unused]] , и я часто использую его, когда мне нужно скомпилировать реализации функций только для отладки. Я немного запутался, где его следует использовать при указании аргументов функции-члена как [[maybe_unused]] ....
32 просмотров
schedule 16.01.2024