On Thu, 14 Jun 2012 02:46:13 -0400, Jacob Carlborg <d...@me.com> wrote:

UFCS can be used to emulate adding new members/instance methods to a class or struct:

class Foo
{
}

void bar (Foo foo, int x) {}

auto foo = new Foo;
foo.bar(3);

Is it possible, somehow, to emulate adding new _static_ methods to a class, something like this:

void fooBar (/*something*/, int x) {}

Making this possible:

Foo.fooBar(4);


The main benefit of having a static method vs. a free function is namespace. That is, avoiding polluting the global namespace.

But a UFCS function *will* pollute the namespace. There is no way around it.

I see no compelling reason to have this. BTW, you can always replace the . with a _:

Foo_fooBar(4);

We need there to be a really compelling use case to add things like this -- just adding features for the sake of "just in case it's useful" doesn't fly.

-Steve

Reply via email to