Start address of first range.
Length of first range, in bytes.
Start address of second range.
Length of second range, in bytes.
true if range a and b overlaps, false otherwise. It is assumed that start points at null and lengths of 0 never overlap.
int[] arr1 = [1, 2, 3, 4]; int[] arr2 = arr1[1..$-1]; size_t arr1len = arr1.length*int.sizeof; size_t arr2len = arr2.length*int.sizeof; // Test all iterations that are supported. assert(nu_is_overlapping(arr1.ptr, arr1len, arr2.ptr, arr2len)); assert(!nu_is_overlapping(arr1.ptr, arr1len, arr2.ptr, 0)); assert(!nu_is_overlapping(arr1.ptr, 0, arr2.ptr, arr2len)); assert(!nu_is_overlapping(null, arr1len, arr2.ptr, arr2len)); assert(!nu_is_overlapping(arr1.ptr, arr1len, null, arr2len));
Gets whether 2 memory ranges are overlapping.