digitalmars.D - D2 Feature?
- Patrick Kreft (4/4) Oct 09 2007 I want to know that concept like C++0x is planing for D?
- Daniel Keep (5/9) Oct 09 2007 I don't think so, but if I remember correctly, someone already
- jcc7 (5/14) Oct 10 2007 Are you guys talking about "futurism"?
- Patrick Kreft (4/23) Oct 10 2007 No that isnt that what i want ;o It's more like i can write down, which
- Reiner Pope (29/40) Oct 11 2007 I don't know if this is what you mean, but a while ago when concepts
I want to know that concept like C++0x is planing for D? Would improve policy-based class design ^^ Regards Patrick Kreft
Oct 09 2007
Patrick Kreft wrote:I want to know that concept like C++0x is planing for D? Would improve policy-based class design ^^ Regards Patrick KreftI don't think so, but if I remember correctly, someone already implemented C++0x style concepts as a library (sorry; can't seem to find the post at the moment). -- Daniel
Oct 09 2007
== Quote from Daniel Keep (daniel.keep.lists gmail.com)'s articlePatrick Kreft wrote:Are you guys talking about "futurism"? http://www.dsource.org/projects/futurism http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.announce&article_id=6762 http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.announce&article_id=6827I want to know that concept like C++0x is planing for D? Would improve policy-based class design ^^ Regards Patrick KreftI don't think so, but if I remember correctly, someone already implemented C++0x style concepts as a library (sorry; can't seem to find the post at the moment). -- Daniel
Oct 10 2007
jcc7 schrieb:== Quote from Daniel Keep (daniel.keep.lists gmail.com)'s articleNo that isnt that what i want ;o It's more like i can write down, which Interfaces have to implemented by an class template. If i didnt implemented it, the compiler will give me a warning.Patrick Kreft wrote:Are you guys talking about "futurism"? http://www.dsource.org/projects/futurism http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.announce&article_id=6762 http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.announce&article_id=6827I want to know that concept like C++0x is planing for D? Would improve policy-based class design ^^ Regards Patrick KreftI don't think so, but if I remember correctly, someone already implemented C++0x style concepts as a library (sorry; can't seem to find the post at the moment). -- Daniel
Oct 10 2007
Daniel Keep wrote:Patrick Kreft wrote:I don't know if this is what you mean, but a while ago when concepts were discussed, I posted a proof-of-concept ( :-) )implementation: http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D&artnum=51849 I haven't looked at it recently, but from memory, it allows both sides of concept checking (checking that your template only uses the features specified in the concept, and checking that the template parameters match the required concept), albeit somewhat verbosely, by effectively writing a one-line "static unittest" which instantiates your template with the minimum requirements, and also single static assert in the template requiring that the parameter matches the concept. At the time, I didn't think overloading was possible, because the compile would simply fail if the static assert failed. However, Sean Kelly (I think) recently posted a clever way to get around this: void foo(T, bool TMatches : bool = MatchesConcept!(T))(T t) {...} This is a good step further, as it allows overloads, but it doesn't handle the case where two overloads match, yet one should be more specialised than the other. For instance, if one template works on the Iterator concept and one works on the RandomAccessIterator concept, it should choose the RandomAccessIterator, but currently it just gives an ambiguity error. Overall, though, I think a library implementation would be very verbose in comparison to C++ (or Haskell type-classes), the fundamental reason being the need to write a "static unittest" for every template and a Sean Kelly-inspired bool specialisation for every concept-checked template parameter. When you consider that this checking should ideally be written for every templated function you write, it becomes excessive. To make it nice, some form of compiler assistance is required. -- ReinerI want to know that concept like C++0x is planing for D? Would improve policy-based class design ^^ Regards Patrick KreftI don't think so, but if I remember correctly, someone already implemented C++0x style concepts as a library (sorry; can't seem to find the post at the moment). -- Daniel
Oct 11 2007