Comment by SigmundA
3 years ago
In .Net/C# this is done with IDisposable and the using statement which works quite well.
Ex:
using (var sr = new StreamReader(filename))
{
txt = sr.ReadToEnd();
}
https://learn.microsoft.com/en-us/dotnet/api/system.idisposa...
Modern C# version,
And for the "what about forgeting to call using?",
https://devblogs.microsoft.com/dotnet/infer-interprocedural-...
No different from using all those static analisers in C and C++ to keep the code free of memory corruptions and UB issues.
Does it behave identically without the braces?