Liste des Groupes | Revenir à cl c |
Thiago Adams wrote:I wonder, if I laid it out it properly:
On 21/08/2024 01:42, Blue-Maned_Hawk wrote:You can already do that in C23:Thiago Adams wrote:>
>initializer inside if is already in C++, and it will probably be onIf it's for consistency with how for loops permit declarations, i would
C2Y.
_much_ prefer that they just outlaw that to induce consistency.
>
(Really, i'd ideally want things to just stay as they are, since
declarations in for loops are simply too useful for macros.)
I like the ability to declare things inside if.
>
if (FILE* f = fopen("file.txt", "r"))
{
/*...*/ fclose(f);
}
>
Because it makes the scope of f, associated with the pointed object
lifetime.
>
For instance, if you try to use f
>
if (FILE* f = fopen("file.txt", "r"))
{
/*...*/ fclose(f);
}
fwrite(f, ..) ;// ERROR
if (…) {
FILE * f = fopen("file.txt", "r");
/* … */
fclose(f);
}
fwrite(f, …); /* Some kind of error happens. */
Or, if you need it to exist before the controlling expression:
for (bool x = true; x; x = false) for (FILE * f = fopen("file.txt", "r");
x; x = false) if (…) {
/* … */
fclose(f);
}
fwrite(f, …);
Les messages affichés proviennent d'usenet.