On Mon, 28 Feb 2011 14:56:15 -0500, Adam Ruppe <[email protected]> wrote:

But then you're back to square one

Obviously, you'd do:

Size size;
size.width = 10;
size.height = 20;

Instead of Size(10, 20).

I could also do:

int width = 10, height = 20;
foo(width, height);

The struct solution helps prevent incorrect ordering. But other than that, it still looks more verbose than should be necessary.

Another alternative is to give each element their own struct...

struct Width { int width; alias width this; }

foo(Width(10), Height(20));

This seems like extreme overkill. I don't want to have to create a new struct for every parameter that I want to pass in a named fashion.

Why can't we just pass integers where integers make sense, and give them names that only exist at compile time? I don't see the harm in the proposal. Certainly every counter proposal I've seen to be able to "accomplish the same thing" with today's compiler is worse than just passing two ints.

-Steve

Reply via email to