In 0.5 you can write this as:

function getindex(A::MyCustomArray, x)
ix = round(Int, x) @boundscheck ix = clamp(ix, 1, length(A)) ...

On Monday, January 25, 2016 at 2:13:41 PM UTC-5, Tomas Lycken wrote:
>
> Interesting read, thanks!
>
> I guess I'll hold off implementing this until 0.5 lands, then.
>
> // T
>
> On Monday, January 25, 2016 at 7:56:15 PM UTC+1, Yichao Yu wrote:
>>
>> On Mon, Jan 25, 2016 at 1:49 PM, Tomas Lycken <[email protected]> 
>> wrote: 
>> > On e.g. Arrays, I can index with @inbounds to avoid bounds checking. In 
>> my 
>> > own custom type, which also implements getindex, what is the correct 
>> way of 
>> > leveraging inbounds? 
>> > 
>> > For example, I have code now that looks something like this: 
>> > 
>> > function getindex(A::MyCustomArray, x) 
>> >     ix = clamp(round(Int, x), 1, length(A)) # yes, clamp makes sense in 
>> this 
>> > case 
>> >     ... 
>> > 
>> > but if the caller has specified @inbounds, I want to avoid the clamp 
>> and 
>> > just set ix = round(Int, x). What would be the correct way to express 
>> that? 
>>
>> No automatic way to do this on 0.4 AFAIK. For 0.5-dev see 
>> https://github.com/JuliaLang/julia/pull/14474 
>>
>> > 
>> > // T 
>>
>

Reply via email to