And such a range would be dog-slow in an algorithm that assumes save() is quick.

-Steve



----- Original Message ----
> From: Andrei Alexandrescu <[email protected]>
> To: Discuss the phobos library for D <[email protected]>
> Sent: Fri, June 25, 2010 9:41:13 AM
> Subject: Re: [phobos] phobos commit, revision 1689
> 
> A range implemented as a class would define

T save() { return clone(); 
> }

Andrei

On 06/25/2010 08:24 AM, Steve Schveighoffer 
> wrote:
> In fact, save should not be implemented unless it looks like 
> this:
>
> T save() { return this; }
>
> So it's pretty 
> much a property.  If you implement save on ranges where the operation will 
> be costly, you are looking for trouble with algorithms that require 
> save.
>
> This is why I don't really like the concept of 
> save.
>
> -Steve
>
>
>
> ----- Original 
> Message ----
>> From: Lars Tandle Kyllingstad<
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]>
>> To: 
> Discuss the phobos library for D<
> href="mailto:[email protected]";>[email protected]>
>> 
> Sent: Fri, June 25, 2010 2:44:51 AM
>> Subject: Re: [phobos] phobos 
> commit, revision 1689
>>
>> Well said.  This is the rule 
> I am using as
>> well.
>
> 
> -Lars
>
>
>
> On Thu, 2010-06-24 at 11:49 -0700, Sean 
> Kelly
>> wrote:
>> All a matter of opinion, but I'd say that 
> @property should only
>> be applied to logical properties of the data 
> structure (go figure).  A
>> clone method (ie. save) doesn't 
> represent an attribute of the data, it's simply
>> a non-mutating 
> operation on the data.  An easy litmus test is whether the
>> 
> member could be replaced with a public variable.  If so, it's probably 
> a
>> property.  This is the real purpose of the no-parens syntax 
> anyway--it
>> allows the class designer to replace public data members 
> with functions at no
>> cost to the end user.
>>
>> 
> On Jun 23, 2010, at 7:45 AM, Andrei
>> Alexandrescu 
> wrote:
>>
>>> I think it should be a property. 
> I
>> followed the convention that stuff that doesn't change "this" is 
> a
>> property.
>>>
>>> 
> Andrei
>>>
>>> On
>> 06/23/2010 09:01 AM, David 
> Simcha wrote:
>>>> Isn't that the point
>> of 
> @property?  I just followed what Andrei was
>>>>
>> 
> doing.  If there's anywhere where I didn't put @property in, 
> it's
>> purely
>>>> an unintentional oversight.  
> Please let me know
>> and/or fix 
> it.
>>>>
>>>> On Wed, Jun 23, 2010 at 
> 9:34
>> AM, Max Samukha<
>> href="mailto:
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]">
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]
>>>>
>> 
> <mailto:
>> href="mailto:
> href="mailto:[email protected]";>[email protected]">
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]>>
>> 
> wrote:
>>>>
>>>>
>>>>
>>
>>>>  
>    On Wed, Jun 23, 2010 at 4:07 PM,
>> 
> href="http://dsource.org";>
> href="http://dsource.org";>dsource.org<
> target=_blank >http://dsource.org>
>>
>>>>  
>    <
>> href="mailto:
> href="mailto:[email protected]";>[email protected]">
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]<mailto:
>> 
> ymailto="mailto:
> href="mailto:[email protected]";>[email protected]"
>> 
> href="mailto:
> href="mailto:[email protected]";>[email protected]">
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]>>  
> wrote:
>>
>>>>
>>>>      
>    phobos commit, revision
>> 
> 1689
>>>>
>>>>
>>>>
>>  
>   user: 
> dsimcha
>>>>
>>>>
>>>>
>>  
>   save() is sometimes attributed with @property, other times it 
> is
>>
>>>>     not. Is it really a property? I 
> don't think it is a good
>> idea to tag
>>>>  
>    every function with @property just to
>> make it callable 
> without ().
>>>>
>>>>
>> 
> _______________________________________________
>>>>
>> 
> phobos mailing list
>>>>
>> ymailto="mailto:
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]"
>> 
> href="mailto:
> href="mailto:[email protected]";>[email protected]">
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]<mailto:
>> 
> ymailto="mailto:
> href="mailto:[email protected]";>[email protected]"
>> 
> href="mailto:
> href="mailto:[email protected]";>[email protected]">
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]>
>>
>>>>  
>   
> http://lists.puremagic.com/mailman/listinfo/phobos
>>
>>>>
>>>>
>>>>
>>>>
>>>>
>> 
> _______________________________________________
>>>> phobos 
> mailing
>> list
>>>>
>> href="mailto:
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]">
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]
>>>>
>> 
> href="
> >http://lists.puremagic.com/mailman/listinfo/phobos"; 
> target=_blank
>>> 
> href="http://lists.puremagic.com/mailman/listinfo/phobos"; target=_blank 
> >http://lists.puremagic.com/mailman/listinfo/phobos
>>>
>> 
> _______________________________________________
>>> phobos 
> mailing
>> list
>>>
>> href="mailto:
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]">
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]
>>>
>> 
> href="
> >http://lists.puremagic.com/mailman/listinfo/phobos"; 
> target=_blank
>>> 
> href="http://lists.puremagic.com/mailman/listinfo/phobos"; target=_blank 
> >http://lists.puremagic.com/mailman/listinfo/phobos
>>
>>
>> 
> _______________________________________________
>> phobos 
> mailing
>> list
>>
>> href="mailto:
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]">
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]
>>
>> 
> href="
> >http://lists.puremagic.com/mailman/listinfo/phobos"; 
> target=_blank
>>> 
> href="http://lists.puremagic.com/mailman/listinfo/phobos"; target=_blank 
> >http://lists.puremagic.com/mailman/listinfo/phobos
>
>
> 
> _______________________________________________
> phobos
>> 
> mailing list
>
>> href="mailto:
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]">
> ymailto="mailto:[email protected]"; 
> href="mailto:[email protected]";>[email protected]
>
>> 
> href="
> >http://lists.puremagic.com/mailman/listinfo/phobos"; 
> target=_blank
>>> 
> href="http://lists.puremagic.com/mailman/listinfo/phobos"; target=_blank 
> >http://lists.puremagic.com/mailman/listinfo/phobos
>
>
>
> 
> _______________________________________________
> phobos mailing 
> list
> 
> href="mailto:[email protected]";>[email protected]
> 
> href="http://lists.puremagic.com/mailman/listinfo/phobos"; target=_blank 
> >http://lists.puremagic.com/mailman/listinfo/phobos
_______________________________________________
phobos 
> mailing list

> href="mailto:[email protected]";>[email protected]

> href="http://lists.puremagic.com/mailman/listinfo/phobos"; target=_blank 
> >http://lists.puremagic.com/mailman/listinfo/phobos


      
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to