Worst ideas/features in programming languages?
Paul Backus
snarwin at gmail.com
Wed Jan 5 22:42:14 UTC 2022
On Wednesday, 5 January 2022 at 07:28:41 UTC, Timon Gehr wrote:
>
> How about something like opArgs, dealing specifically with this
> case? (i.e., a function call `foo(x)` with a single argument is
> immediately rewritten to `foo(x.opArgs)` if `x` has a member
> `opArgs`, and this rewrite is applied exactly once.)
This mechanism seems too powerful to me; for example, one could
write code like the following:
struct S {
string opArgs;
}
string fun(S s) { return "S overload"; }
string fun(string s) { return "string overload"; }
void main() {
assert(fun(S()) == "S overload"); // fails
}
If there is to be any mechanism for automatic expansion of
tuples, it should probably be narrow enough to avoid enabling
surprises like this one.
More information about the Digitalmars-d
mailing list