Range documentation

bls nanali at orange.fr
Sat Mar 23 23:21:49 PDT 2013


Sorry meant Concept == vTable less Interface
On Sunday, 24 March 2013 at 06:20:14 UTC, bls wrote:
> That's why I think concepts are a good thing.
> Container == vTable less Interfaces.
> secure + documentation for free
>
> On Sunday, 24 March 2013 at 03:55:35 UTC, Manu wrote:
>> I'd like to clarify some conflicts I've encountered.
>>
>> TDPL talks about ranges, it mentions random access ranges 
>> requiring these
>> functions:
>>
>>  T at(int i)
>>  Range slice(int x, int y)
>>
>> But most code I encounter rather implements:
>>
>>  T opIndex(size_t i)
>>  Range opSlice(size_t x, size_t y)
>>
>> Which is it? Is there a distinction? One approach is 
>> deprecated?
>>
>>
>> Also, forward ranges require:
>>
>>  Range save()
>>
>> But there is also this function:
>>
>>  Range opSlice()
>>
>> With no args, handles the syntax 'range[]'. save() and 
>> opSlice() with no
>> args would appear to be identical.
>> Why have both? Which will be used in which cases?
>>
>>
>>
>> On 24 March 2013 13:03, Manu <turkeyman at gmail.com> wrote:
>>
>>> I'm trying to write some ranges with strictly controlled sets 
>>> of features,
>>> but the docs on ranges are either very poor, or illusive (I 
>>> can't find any).
>>>
>>> Suggest: Add a category under Language -> Language Reference 
>>> about ranges,
>>> and all the stuff that defines their use/limitations. With 
>>> some examples.
>>>
>>> I'm just copying from the std libs and hope I catch all the 
>>> details.



More information about the Digitalmars-d mailing list