diff --git a/ranges/ptr_arith.nim b/ranges/ptr_arith.nim index 8092af5..8fdb390 100644 --- a/ranges/ptr_arith.nim +++ b/ranges/ptr_arith.nim @@ -3,5 +3,8 @@ proc baseAddr*[T](x: openarray[T]): pointer = cast[pointer](x) proc shift*(p: pointer, delta: int): pointer {.inline.} = cast[pointer](cast[int](p) + delta) +proc distance*(a, b: pointer): int {.inline.} = + cast[int](b) - cast[int](a) + proc shift*[T](p: ptr T, delta: int): ptr T {.inline.} = cast[ptr T](shift(cast[pointer](p), delta * sizeof(T)))