On Tue, 04 Aug 2009 17:20:53 -0400, Rainer Deyke <rain...@eldwood.com> wrote:

Steven Schveighoffer wrote:
On Tue, 04 Aug 2009 15:56:16 -0400, Ary Borenszweig
<a...@esperanto.org.ar> wrote:
foo(timeout=5, bar="100")
It could also be accomplished via a fully implemented reflection
library, which is my side topic for this thread branch :P

No.  The names of positional arguments are an implementation detail, and
should not be exposed via reflection.  Named arguments are different
from positional arguments and require separate language support.

It works. See http://msdn.microsoft.com/en-us/library/system.reflection.parameterinfo.name.aspx

Consider the ambiguity caused by function overloading:
  void f(int x, string y);
  void f(string y, int x);
  f(x = 1, y = "");

That is a case where the proposed function would throw an exception.

Consider the implications of function pointers:
  void f(int x, int y);
  void g(int y, int x);
  (cond ? &f : &g)(x = 1, y = 2);

I don't see what this has to do with reflection...

-Steve

Reply via email to