STRUCTURED BINDINGS ET initializer_list

Salut ce forum apprends les bases du c++

Moderator: Rick

Post Reply
Hydraxx
Site Admin
Posts: 114
Joined: Mon Jan 12, 2026 4:04 pm
Location: France
Contact:

STRUCTURED BINDINGS ET initializer_list

Post by Hydraxx »

STRUCTURED BINDINGS ET initializer_list

À QUOI ÇA SERT ?

Les structured bindings permettent de donner directement des noms aux composants d’un objet.

initializer_list permet de recevoir une liste de valeurs entre accolades.


1. STRUCTURED BINDINGS

Code: Select all

std::pair<int, std::string> p{42, "test"};

auto [id, name] = p;
Après cela :

Code: Select all

id == 42
name == "test"
C’est plus lisible que :

Code: Select all

p.first
p.second

2. COPIE OU RÉFÉRENCE

Code: Select all

auto [x, y] = p;
x et y sont liés selon les règles de structured binding, et dans ce cas on raisonne comme une décomposition par valeur.

Si tu veux travailler directement avec l’objet :

Code: Select all

auto& [x, y] = p;
Alors modifier x peut modifier la partie correspondante de p.

Lecture seule sans copie :

Code: Select all

const auto& [x, y] = p;

3. STRUCT

Code: Select all

struct Point
{
    int x;
    int y;
};

Point p{10, 20};

auto [x, y] = p;

4. initializer_list

Code: Select all

void print(std::initializer_list<int> values)
{
    for (int value : values)
    {
        std::cout << value << '\n';
    }
}
Appel :

Code: Select all

print({1, 2, 3, 4});
À quoi ça sert ?

À créer des interfaces naturelles acceptant une liste de valeurs homogènes.


À RETENIR


Structured binding :
décomposer un objet.

initializer_list :
accepter une liste écrite avec {}.

Return to “Bases du C++”

Who is online

Users browsing this forum: No registered users and 0 guests