On Thursday, 21 February 2013 at 04:07:46 UTC, Steven Schveighoffer wrote:
On Wed, 20 Feb 2013 21:50:01 -0500, deadalnix <[email protected]> wrote:

On Wednesday, 20 February 2013 at 13:42:48 UTC, Steven Schveighoffer wrote:
On Wed, 20 Feb 2013 01:00:00 -0500, deadalnix <[email protected]> wrote:

As discussed previously, I really wonder hy a const and non const version of a function can exists in a first place. What problem does it solve that isn't better solved by inout ?

const(T) and T are different types. Saying you can overload on types, unless they just vary by const is a special case that I don't think is worth adding.


Explain me how the hell you overload on implicit parameter types ?

A method is simply a function that takes a hidden parameter of an object or struct.

Really, a method with a signature Obj.foo() is a function with a signature foo(Obj this)

A const method Obj.foo() const is a function with a signature foo(const(Obj) this)

So it's equivalent to saying you can overload:

foo(int *x)
foo(const(int) *x)

To disallow this would be unnecessarily restrictive.


That is called avoiding the question.

Reply via email to