C++ guys hate static_if?
H. S. Teoh
hsteoh at quickfur.ath.cx
Tue Mar 12 07:14:17 PDT 2013
On Tue, Mar 12, 2013 at 12:39:48PM +0100, TommiT wrote:
> On Tuesday, 12 March 2013 at 04:34:05 UTC, Walter Bright wrote:
> >It's interfaces without the vtable[].
> >
> >It's still solely based on type signatures. D constraints make
> >pretty much anything that can be computed at compile time a
> >testable gate.
>
> Yeah, you're right. That kind of interface syntax doesn't really
> lend itself to specifying concepts. So, here's another attempt at
> a concept syntax (and functionality):
>
> concept AscendingInfiniteInputRange {
> // 'this' is an instance of a type which implements the
> // AscendingInfiniteInputRange concept given the
> // if-condition below is true:
> if( is(typeof(this.empty) : bool)
> && is(typeof(this.front))
> && !is(typeof(this.front) == void)
> && is(typeof(this.popFront() == void)
> // testing a compile time evaluable value:
> && this.empty == false
> // static members can also be tested:
> && typeof(this).infinite == true
> && typeof(this).sortedAscending == true )
> }
How is this any different from the current isInputRange!R,
isForwardRange!R, etc.?
T
--
Дерево держится корнями, а человек - друзьями.
More information about the Digitalmars-d
mailing list