Let's do front, back, popFront, and popBack!
Don
nospam at nospam.com
Fri Jan 30 00:06:13 PST 2009
Andrei Alexandrescu wrote:
> Michel Fortin wrote:
>> On 2009-01-29 22:02:07 -0500, Andrei Alexandrescu
>> <SeeWebsiteForEmail at erdani.org> said:
>>
>>> Steven Schveighoffer wrote:
>>>> Will popFront and popBack return the element removed? Usually that
>>>> is the meaning of pop (but not always).
>>>
>>> Great question. In STL they can't because C++ couldn't move values
>>> reliably at the time (C++0X still can't IMHO but that's another
>>> discussion). D would be able to because it has good support for
>>> moving. I just don't want inefficiencies; returning e.g. a large
>>> struct will still involve some memcpying even if costly resources are
>>> not duplicated.
>>>
>>> So I'm ambivalent about this.
>>
>> That would seem like another good use for return type overloading:
>>
>> void popFront();
>> ElementType popFront();
>>
>> Too bad we can't have that.
>>
>
> I've been thinking for a while to suggest Walter to allow overloading of
> void vs. anything else return type. Making one private or undefined
> would prevent statically that people call functions and ignore error codes.
That's a really interesting idea. You could force ownership, too,
couldn't you? (So that you couldn't eg createFile("xxx") and forget to
store the file handle).
More information about the Digitalmars-d
mailing list