You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
En langage C, ``auto`` (pour "**Automatic Storage Duration**") sert à spécifier qu'une variable a une **portée locale** à son bloc de code (**scope**).
@@ -139,7 +146,7 @@ auto sum = [](int lhs, int rhs) -> int { return lhs + rhs; };
139
146
140
147
Attention, le mot clef ``auto`` est **différent pour les paramètres de fonctions**. On aborde ce point [plus bas](#abbreviated-function-template-depuis-c20).
141
148
142
-
####Oublier une conversion explicite
149
+
### Oublier une conversion explicite
143
150
144
151
Par négligence ou par méconnaissance de la bibliothèque standard, on peut penser que les deux codes suivants sont identiques:
145
152
@@ -1029,23 +1036,6 @@ template<class Lhs, class Rhs>
1029
1036
void sum(Lhs lhs, Rhs rhs);
1030
1037
{% endhighlight %}
1031
1038
1032
-
### try-catch ne supporte pas ``auto``
1033
-
1034
-
Bien que la syntaxe d'un ``catch`` puisse le laisser penser, un try-catch block **n'est pas une fonction**.<br>
1035
-
Il n'est pas possible de templater le paramètre d'un ``catch``.<br>
1036
-
De la même manière, il n'est pas possible d'utiliser ``auto`` pour typer ce paramètre.
1037
-
1038
-
{% highlight cpp linenos highlight_lines="5" %}
1039
-
try
1040
-
{
1041
-
// ...
1042
-
}
1043
-
catch (const auto& exception) // error: 'auto' not allowed in exception declaration
1044
-
{
1045
-
std::cout << exception.what();
1046
-
}
1047
-
{% endhighlight %}
1048
-
1049
1039
## auto cast (depuis C++23)
1050
1040
1051
1041
Une manière générique d'obtenir la copie d'un objet en C++ est ``auto variable = x;``, mais une telle copie est une [lvalue](/articles/c++/value_categories#lvalue).
@@ -1059,7 +1049,9 @@ function(auto{expr});
1059
1049
1060
1050
## Structured binding pack (depuis C++26)
1061
1051
1062
-
Dans la continuité des [structured binding declaration](#structured-binding-declaration-depuis-c17), le C++26 ajoute la possibilité de d'extraire des éléments dans un pack ([proposal](https://wg21.link/P1061R10), [approval](https://wg21.link/P1061R9)).
1052
+
Dans la continuité des [structured binding declaration](#structured-binding-declaration-depuis-c17), le C++26 ajoute la possibilité de d'extraire des éléments dans un [pack](/articles/c++/templates#pack) ([proposal](https://wg21.link/P1061R10), [approval](https://wg21.link/P1061R9/status)).
1053
+
1054
+
Cette fonctionnalité n'est [pas encore supportée par les compilateurs](https://en.cppreference.com/w/cpp/26) à l'heure où j'écris.
Copy file name to clipboardExpand all lines: _posts/2025-01-19-welcome-to-my-devblog.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ Je suis un **développeur C++ et web**, en constante veille technologique pour m
18
18
Ma philosophie en programmation est basée sur la **rigueur**, la **généricité**, la **clarté**, les **performances** et la **sécurité**.<br>
19
19
J'ai un fort besoin de comprendre les choses pour pouvoir les manipuler, ce qui me pousse à creuser toujours plus dans l'aspect technique des langages.
20
20
21
-
Si vous partagez ma passion pour la programmation ou que vous cherchez à apprendre des choses, vous êtes au bon endroit.
21
+
Si vous partagez ma passion pour la programmation et que vous cherchez à apprendre des choses, vous êtes au bon endroit.
0 commit comments