Kinds of containers

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Wed Oct 21 12:37:10 PDT 2015


On Wednesday, 21 October 2015 at 19:18:44 UTC, Andrei 
Alexandrescu wrote:
> On 10/21/2015 02:24 PM, Robert burner Schadek wrote:
>> On Wednesday, 21 October 2015 at 17:23:15 UTC, Andrei 
>> Alexandrescu wrote:
>>> Even simpler, hasMethod!(Container, "append") -- Andrei
>>
>> I know this goes against your talk at DConf, but having to 
>> write string
>> parameters does not feel good. I'm will properly not be the 
>> only one who
>> will mistype "apend" and wonder why the other template 
>> function will be
>> chosen. I rather have the compiler scream at me telling me 
>> there is no
>> symbol hasApend. And hasAppend!Container is less typing than
>> hasMethod!(Container, "append").
>
> Yah, but defining isXxx for dozens of Xxx doesn't sit well 
> either. -- Andrei

So, instead we make it ad hoc where only the name is tested 
rather than anything about what the function is or does, and we 
make it that much harder for folks to know what the vocabulary 
list of functions is, because there's no list of traits to test 
for them and just a table in some piece of documentation 
somewhere? I just don't see this scaling well if we're not more 
rigorous about it than hasMethod!(Container, "append"). If all of 
the containers are in Phobos and nothing outside of Phobos is 
actually testing for any of these methods, then it's a much 
smaller issue, but if any of this method testing is going to 
happen outside of Phobos, then I definitely think that it's a bad 
idea to be this ad hoc about it.

- Jonathan M Davis


More information about the Digitalmars-d mailing list