boost::multi

Main namespace for the library

Namespaces

Name

Description

elementwise

Namespace for elementwise operators (+, ‐, *, and other convenience functions)

pmr

Convenience aliases using std::pmr::polymorphic_allocator as the allocator.

Types

Name

Description

array

A multidimensional array value

array_ref

A multidimensional view of a contiguous, pre‐existing memory buffer.

const_subarray

Read‐only D‐dimensional subarray‐reference (view into a subarray)

dynamic_array

A multidimensional array (fix to a managed memory buffer)

extents_t

A structured cartesian product of extensions, it can be decomposed as a tuple‐like into its cartesian factors. Used to determine the extents of array.

move_subarray

Movable D‐dimensional view into part or all of an array (elements can be moved when dereferenced and assigned)

restriction

An array interface for a function of D integer arguments restricted to an certain Cartesian grid (extents), elements are generated lazily

subarray

Mutable D‐dimensional view into part or all of an array

unique_array

A D‐dimensional array that is move only (cannot be copied into another unique_array)

Type Aliases

Name

Description

array_cref

Convenience alias for a D‐dimensional view of a contiguous, pre‐existing memory constant memory buffer

array_iterator [deprecated]

array_ptr [deprecated]

extensions_t [deprecated]

inplace_array

Stack‐allocated multidimensional array whose maximum size is encoded in the element type T (no efficient moves, assignments and constructions are all O(N))

sizes_t

D‐tuple to store sizes of arrays

Functions

Name

Description

apply

applies a function to an the tuple of extents

begin

returns an iterator to the beginning of the given range (including r‐value subarrays).

cbegin

returns an const‐iterator to the beginning of the given range (including r‐value subarrays).

cend

returns an const‐iterator to the end of the given range (including r‐value subarrays).

end

returns an iterator to the end of the given range (including r‐value subarrays).

get

extracts the Ith extension from multidimensional extents.

intersection

returns the intersection between two integer ranges

move

yields an array reference marked for move; for subarrays (including r‐value subarrays), its elements are marked as movable, for array values this has the same effect as std::move.

operator* [deprecated]

Multiplication operator

operator+

Addition operator for iterators

operator‐

Substract operator for iterators

operator/ [deprecated]

Division operators

operatorˆ

creates a restriction of D dimensions of a function that takes D arguments given an extents of Cartesian indices.

restricted

creates a restriction of D dimensions of a function that takes D arguments given an extents of Cartesian indices.

size

returns the size of a given range (same as std::size), in the leading dimension.

swap

swap overloads

operator<<

writes an array or subarray reference to and output stream in an unspecified multiline format.

operator==

Equality operators

operator!=

Inequality operators

operator<

Less‐than operators

operator<=

Less‐than‐or‐equal operators

operator>

Greater‐than operators

operator>=

Greater‐than‐or‐equal operators

Variables

Name

Description

force_element_trivial_default_construction

When specialized to true, the library skips the per‐element default‐construction loop on array allocation.

Created with MrDocs