const(Object)ref is here!

Andrej Mitrovic andrej.mitrovich at gmail.com
Tue Dec 21 10:46:11 PST 2010


Hmm.. if we get uniform function call syntax for all types, perhaps
this code might even work some day:

import std.stdio;
import std.conv;

string toString(A)(A a)
{
    return to!string(a);
}

class A
{
    string name;
    this(string name)
    {
        this.name = name;
    }
    string writeTo()
    {
        return name;
    }
}

void main()
{
    auto foo = new A("I'm foo! ");
    writeln(foo.toString);  // using uniform function call syntax
}

Right now this code will compile but it will use Object's toString
instead of the one we defined above.




On 12/21/10, Steven Schveighoffer <schveiguy at yahoo.com> wrote:
> On Tue, 21 Dec 2010 13:10:12 -0500, Bruno Medeiros
> <brunodomedeiros+spam at com.gmail> wrote:
>
>> On 06/12/2010 19:00, Jonathan M Davis wrote:
>>> On Monday, December 06, 2010 05:41:42 Steven Schveighoffer wrote:
>>>> On Mon, 06 Dec 2010 04:44:07 -0500, spir<denis.spir at gmail.com>  wrote:
>>>>> On Mon, 6 Dec 2010 00:31:41 -0800
>>>>>
>>>>> Jonathan M Davis<jmdavisProg at gmx.com>  wrote:
>>>>>> toString() (or writeFrom() or whatever
>>>>>> it's going to become)
>>>>>
>>>>> guess it was writeTo() ;-) but "writeFrom" is nice as well, we should
>>>>> find some useful use for it
>>>>
>>>> It was proposed as writeTo, but I'm not opposed to a different name.
>>>
>>> I have no problem with writeTo(). I just couldn't remember what it was
>>> and
>>> didn't want to take the time to look it up, and the name isn't as
>>> obvious as
>>> toString(), since it's not a standard name which exists in other
>>> languages, and
>>> it isn't actually returning anything. Whether it's to or from would
>>> depend on
>>> how you look at it - to the given delegate or from the object. But
>>> writeTo() is
>>> fine. Once it's used, it'll be remembered.
>>>
>>
>> I don't think it's entirely fine. It should at least have
>> "string"/"String" somewhere in the name. (I mentioned this on the other
>> original thread,  although late in time)
>
> First, I'll say that it's not as important to me as it seems to be to you,
> and I think others feel the same way.  writeTo seems perfectly fine to me,
> and the 'string' part is implied by the char[] parameter for the delegate.
>
> Changing the name to contain 'string' is fine as long as:
>
> 1) it's not toString.  This is already established as "returning a string"
> in both prior D and other languages.  I think this would be too confusing.
> 2) it's short.  I don't want writeAsStringTo or something similar.
>
> What did you have in mind?
>
> -Steve
>


More information about the Digitalmars-d mailing list