3 ms·
Scala does it by pulling out the keyword arguments to variables so that your example would become { val x$1 = B() val x$2 = A() A(.one = x$2, .two = x$1)
by xmcqdpt2 2y ago
Scala does it by pulling out the keyword arguments to variables so that your example would become
{
val x$1 = B()
val x$2 = A()
A(.one = x$2, .two = x$1)
}
This maintains left-to-right evaluation order while allowing you to pass arguments in any order.
There is probably some dark and forbidden reason why C++ can't do that.
ETA: That's basically what the post does.