38. 用于数组作的 Boost 包

array_boost 模块实现数组作例程的集合。

所有函数和符号都在 “array_boost” 模块中,使用 require 来访问它。

require daslib/array_boost

38.1. 临时数组

temp_array(arr: auto implicit ==const)

temp_array returns auto

Warning

这是不安全的操作。

argument

argument type

arr

auto implicit!

从给定对象创建临时数组。 重要要求是:

  • 对象内存是线性的

  • 每个元素直接跟随下一个元素,步幅等于元素的大小

  • 对象内存在返回数组的生命周期内不会更改

temp_array(arr: auto const implicit ==const)

temp_array returns auto

Warning

这是不安全的操作。

argument

argument type

arr

auto const implicit!

从给定对象创建临时数组。 重要要求是:

  • 对象内存是线性的

  • 每个元素直接跟随下一个元素,步幅等于元素的大小

  • 对象内存在返回数组的生命周期内不会更改

temp_array(data: auto? ==const; lenA: int const; a: auto(TT) const)

temp_array returns array<TT>

Warning

这是不安全的操作。

argument

argument type

data

auto?!

lenA

int const

a

auto(TT) const

从给定对象创建临时数组。 重要要求是:

  • 对象内存是线性的

  • 每个元素直接跟随下一个元素,步幅等于元素的大小

  • 对象内存在返回数组的生命周期内不会更改

temp_array(data: auto? const ==const; lenA: int const; a: auto(TT) const)

temp_array returns array<TT> const

Warning

这是不安全的操作。

argument

argument type

data

auto? const!

lenA

int const

a

auto(TT) const

从给定对象创建临时数组。 重要要求是:

  • 对象内存是线性的

  • 每个元素直接跟随下一个元素,步幅等于元素的大小

  • 对象内存在返回数组的生命周期内不会更改

38.2. 空支票

empty(v: auto(VecT) const)

empty returns auto

argument

argument type

v

auto(VecT) const

如果 ‘v’ 有 0 个元素,则返回 true。这也意味着定义了`length(v)`。

38.3. 未分类

array_view(bytes: array<auto(TT)> const ==const; offset: int const; length: int const; blk: block<(view:array<TT> const#):void> const)

array_view returns auto

argument

argument type

bytes

array<auto(TT)> const!

offset

int const

length

int const

blk

block<(view:array<TT> const#):void> const

创建数组的视图,该视图是仅在块内有效的临时数组

array_view(bytes: array<auto(TT)> ==const; offset: int const; length: int const; blk: block<(var view:array<TT>#):void> const)

array_view returns auto

argument

argument type

bytes

array<auto(TT)>!

offset

int const

length

int const

blk

block<(view:array<TT>#):void> const

创建数组的视图,该视图是仅在块内有效的临时数组