Вопросы по теме 'structured-bindings'

Почему включение ‹utility› нарушает структурированные привязки в GCC?
Рассмотреть возможность: struct Point { int x, y; }; int main() { const auto [x, y] = Point{}; } Этот код отлично компилируется с gcc 7.1 в режиме С++ 17, однако этот: #include <utility> struct Point { int x, y; }; int...
1054 просмотров
schedule 03.02.2023

объявление функции для структурированных привязок
Можно ли использовать структурированные привязки только с какой-либо «структурой» в качестве возвращаемого значения? Верните любой класс/структуру, например. кортеж здесь отлично работает: auto f() { return std::make_tuple(1,2.2); }...
672 просмотров
schedule 17.06.2022

Структурированные привязки для вашего собственного типа, который не является структурой или кортежем (через общедоступную функцию-член)
Я прохожу через Herb Sutter's Путешествие: к более мощному и простому программированию на C++ Связывание структуры Чтобы понять концепцию. Лучше всего написать программу, которую я пробовал, но получаю какую-то ошибку. Просто хочу...
4209 просмотров

Структурированная привязка и галстук ()
Учитывая эти декларации: int a[3] {10,20,30}; std::tuple<int,int,int> b {11,22,33}; Я могу использовать объявления структурированной привязки для декодирования a и b : auto [x1,y1,z1] = a; auto [x2,y2,z2] = b; Но если x1 ,...
1106 просмотров
schedule 04.01.2023

структурированные привязки с std::minmax и rvalues
Я столкнулся с довольно тонкой ошибкой при использовании std::minmax со структурированными привязками. Похоже, что переданные rvalue не всегда будут копироваться, как можно было бы ожидать. Первоначально я использовал T operator[]() const в...
1195 просмотров
schedule 24.03.2023

Цикл for на основе диапазона на unordered_map и ссылках [дубликаты]
При запуске цикла for на основе диапазона на std::unordered_map оказывается, что тип переменной цикла не использует ссылочные типы: std::unordered_map<int, int> map = { {0, 1}, {1, 2}, {2, 3} }; for(auto&[l, r] : map)...
1528 просмотров

Не удалось обойти ошибку структурированной привязки g++ 7.1 с помощью Boost.Bimap
В моем проекте я использую Boost.Bimap для реализации двунаправленных карт. Посмотрите на этот очень простой MCVE на godbolt , где я использую структурированная привязка для печати пары ключ-значение правой карты (которая, согласно...
111 просмотров

Почему структурированное связывание вводит переменные как значения, а не ссылки?
Я изучаю объявления структурированной привязки. Насколько я понял, в auto& [x, y] = expr; введены переменные x и y типа "ссылка на std::tuple_element<i, E>::type " (ибо i=0, 1 и E это тип невидимой переменной e ). Более того,...
439 просмотров
schedule 29.05.2023

Расширение языка c++17 и флаг std:c++17
Меня смущают разные ошибки в Visual Studio 2017 (версия 15.9.11): 'if constexpr' is a C++17 language extension а также language feature 'structured bindings' requires compiler flag '/std:c++17' Я знаю, что добавление флага /std:c++17...
304 просмотров