26. Boost package for array manipulation
The array_boost module implements collection of array manipulation routines.
All functions and symbols are in “array_boost” module, use require to get access to it.
require daslib/array_boost
26.1. Temporary arrays
- temp_array(arr: auto implicit ==const): auto
Warning
This is unsafe operation.
Creates temporary array from the given object. Important requirements are:
object memory is linear
each element follows the next one directly, with the stride equal to size of the element
object memory does not change within the lifetime of the returned array
- Arguments:
arr : auto implicit!
- temp_array(arr: auto const implicit ==const): auto
Warning
This is unsafe operation.
Creates temporary array from the given object. Important requirements are:
object memory is linear
each element follows the next one directly, with the stride equal to size of the element
object memory does not change within the lifetime of the returned array
- Arguments:
arr : auto implicit!
- temp_array(data: auto? ==const; lenA: int; a: auto(TT)): array<TT>
Warning
This is unsafe operation.
creates a temporary array from the given data pointer and length Important requirements are:
data pointer is valid and points to a memory block of at least lenA elements
each element follows the next one directly, with the stride equal to size of the element
data memory does not change within the lifetime of the returned array
- Arguments:
data : auto?!
lenA : int
a : auto(TT)
- temp_array(data: auto? ==const; lenA: int; a: auto(TT)): array<TT>
Warning
This is unsafe operation.
creates a temporary array from the given data pointer and length Important requirements are:
data pointer is valid and points to a memory block of at least lenA elements
each element follows the next one directly, with the stride equal to size of the element
data memory does not change within the lifetime of the returned array
- Arguments:
data : auto?!
lenA : int
a : auto(TT)
26.2. Empty check
- empty(v: auto(VecT)): auto
returns true if ‘v’ has 0 elements. this also implies that length(v) is defined.
- Arguments:
v : auto(VecT)
26.3. Sub-array view
- array_view(bytes: array<auto(TT)>; offset: int; length: int; blk: block<(view:array<TT>#):void>): auto
creates a view of the array, which is a temporary array that is valid only within the block
- Arguments:
bytes : array<auto(TT)>!
offset : int
length : int
blk : block<(view:array<TT>#):void>
- array_view(bytes: array<auto(TT)>; offset: int; length: int; blk: block<(var view:array<TT>#):void>): auto
creates a view of the array, which is a temporary array that is valid only within the block
- Arguments:
bytes : array<auto(TT)>!
offset : int
length : int
blk : block<(view:array<TT>#):void>