bearophile wrote:
D language isn't even able to tell if an "out" argument has being used before it is assigned inside the function (as C# compiler is able to, because in C# using uninitialized variables is an error) This is awful and surely worse than multiple return values.
That's a misunderstanding of how "out" parameters work in D. All out parameters are default initialized upon entry to the function. Therefore, the user cannot access an uninitialized out parameter.
