Вопросы по теме '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 просмотров
schedule
19.11.2023
Сравнение 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 просмотров
schedule
19.12.2023
Доступ к общим членам структуры в 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