digitalmars.D.learn - How to realize isSortedRange?
- Alexandr Druzhinin (13/13) Aug 19 2014 I need to ensure that range passed to function is SortedRange to use
- Kagamin (1/1) Aug 20 2014 http://dlang.org/phobos/std_traits.html#TemplateOf
- hane (4/5) Aug 20 2014 Or isInstanceOf.
- Alexandr Druzhinin (1/1) Aug 20 2014 Thank you!
I need to ensure that range passed to function is SortedRange to use binary search. I did something like: static if(!__traits(compiles, { ElementType!(typeof(data)) element; auto d = data.trisect(element); } )) assert(0, "DataRange shall be SortedRange"); It works for me, but in fact it checks if the type of 'data' have 'trisect' method and conception of SortedRange is something more than having 'trisect' method. I remember there is(?) some way to get general type of template (i.e. SortedRange instead of SortedRange!int), but can not find it.
Aug 19 2014
On Wednesday, 20 August 2014 at 07:18:12 UTC, Kagamin wrote:http://dlang.org/phobos/std_traits.html#TemplateOfOr isInstanceOf. static if (__traits(isSame, TemplateOf!R, SortedRange)) static if (isInstanceOf!(SortedRange, R))
Aug 20 2014