Ugrás a tartalomhoz

structured binding

A Wikiszótárból, a nyitott szótárból


Főnév

structured binding (tsz. structured bindings)

  1. (informatika) A structured binding a C++17-ben bevezetett funkció, amely lehetővé teszi, hogy egyszerre több változót hozzunk létre és inicializáljunk egy komplex típusból (pl. std::tuple, std::pair, vagy egy struct tagjaiból) kényelmes, “szétszedős” szintaxissal.

Magyarul:

A structured binding azt jelenti, hogy például egy std::pair vagy std::tuple elemeit külön változókba tudod szétbontani egyszerűen.



Példa:

#include <iostream>
#include <tuple>
#include <utility>

struct Pont {
    int x;
    int y;
};

int main() {
    std::pair<int, std::string> p = {42, "alma"};
    auto [szam, szoveg] = p;  // structured binding
    std::cout << szam << ", " << szoveg << std::endl;

    Pont pt{10, 20};
    auto [a, b] = pt;  // szintén működik struktúrákkal
    std::cout << a << ", " << b << std::endl;

    auto t = std::make_tuple(1, 2.5, "szöveg");
    auto [i, d, s] = t;
    std::cout << i << ", " << d << ", " << s << std::endl;

    return 0;
}

Egyszerűen megfogalmazva:

Structured binding = szétbontás egyszerű szintaxissal több változóba.
Olyan, mintha azt mondanád:
> “Add ide a tuple vagy struct tagjait külön változókba, ne kelljen get<>-et vagy pont-operátort használnom.”