Main KIWAKU namespace. More...
Main KIWAKU namespace.
KIWAKU - Containers Well Made Copyright : KIWAKU Project Contributors SPDX-License-Identifier: BSL-1.0
Namespaces | |
| namespace | __ |
| namespace | tags |
Classes | |
| struct | any_allocator |
| Opaque allocator type. More... | |
| struct | heap_allocator |
| Malloc based allocator. More... | |
| struct | is_dynamic_extent |
| Checks if the Nth extent of a shape descriptor is only known at runtime. More... | |
| struct | is_joker |
| Checks a type is equivalent to kwk::joker. More... | |
| struct | is_static_extent |
| Checks if the Nth extent of a shape descriptor is known at compile-time. More... | |
| struct | joker |
| Type of the kwk::_ object. More... | |
| struct | shape |
| Fixed order shape with mixed size capability. More... | |
| struct | stride |
| Fixed order stride with mixed size capability. More... | |
| struct | table |
| Owning, contiguous multi-dimensional container. More... | |
| struct | unsupported_call |
| Overloading error reporting helper. More... | |
| struct | view |
| Non-owning, contiguous multi-dimensional container. More... | |
Concepts | |
| concept | callable |
| KWK callable | |
| concept | deferred_callable |
| KWK deferred callable | |
| concept | tag_invocable |
| Type supporting the tag_invoke protocol. | |
Typedefs | |
| template<typename... Settings> | |
| using | make_table_t = table< __::builder< rbr::settings(table_, Settings{}...)> > |
| Type helper. | |
| template<typename... Settings> | |
| using | make_view_t = view< __::builder< rbr::settings(view_, Settings{}...)> > |
| Type helper. | |
| template<typename Tag , typename... Args> | |
| using | tag_invoke_result = std::invoke_result_t< decltype(kwk::tag_invoke), Tag, Args... > |
| Compute the return type of a kwk::tag_invoke call. | |
| template<auto & Func> | |
| using | tag_of = std::decay_t< decltype(Func)> |
| Compute the type of an instance of an KIWAKU Callable Object. | |
Functions | |
| auto | allocate (any_allocator &a, std::size_t n) |
| Allocates data from an opaque allocator instance. | |
| void * | allocate (heap_allocator const &, std::size_t n) noexcept |
| Allocates data on the heap. | |
| template<auto... D> | |
| constexpr auto | as_stride (shape< D... > s) noexcept |
| template<std::int32_t N, auto... D> | |
| constexpr auto | compress (shape< D... > const &) noexcept |
| Compress a kwk::shape to a given order. | |
| template<std::int32_t N, auto... D> requires (N>0 && N<=sizeof...(D)) | |
| constexpr auto | compress (shape< D... > const &s) noexcept |
| Compress a kwk::shape to a given order. | |
| template<std::integral Idx, auto... Desc> | |
| constexpr auto | coordinates (Idx idx, shape< Desc... > const shp) noexcept |
| Computes a tuple of coordinates from a linear index and a shape. | |
| void | deallocate (any_allocator &a, void *ptr) |
| Deallocates data from an opaque allocator instance. | |
| void | deallocate (heap_allocator const &, void *ptr) noexcept |
| Deallocates data on the heap. | |
| template<typename O , typename R > | |
| end_t (O, R) -> end_t< O, R > | |
| Deduction guide. | |
| template<typename Func , concepts::container C0, concepts::container... Cs> | |
| constexpr auto | for_each (Func &&f, C0 &&c0, Cs &&... cs) |
| Simple walkthrough over all elements of a container. | |
| template<typename Func , auto... S> | |
| constexpr auto | for_each (Func &&f, shape< S... > const &shp) |
| Simple walkthrough over all possible indexes. | |
| template<typename Context , typename Func , concepts::container Container> | |
| constexpr auto | for_each_index (Context &ctx, Func &&f, Container &&c) |
| Simple walkthrough over all elements of a container and their coordinates. | |
| template<auto... S, kwk::concepts::range Indexes> requires ( !kumi::sized_product_type<Indexes,shape<S...>::static_order> ) | |
| constexpr auto | linear_index (shape< S... > const &sh, Indexes const &indexes) noexcept |
| Computes a linear index from a range of N indexes. | |
| template<auto... S, std::integral... Index> | |
| constexpr auto | linear_index (shape< S... > sh, Index... idx) noexcept |
| Computes a linear index from a order N list of indexes. | |
| template<auto... S, kumi::sized_product_type< shape< S... >::static_order > Indexes> | |
| constexpr auto | linear_index (shape< S... > sh, Indexes idx) noexcept |
| Computes a linear index from a tuple of N indexes. | |
| template<int... , concepts::extent... D> | |
| constexpr auto | of_size (D... d) |
| Generates a kwk::shape from a list of Extent. | |
| template<std::integral SizeType, int... , concepts::extent... D> | |
| constexpr auto | of_size (D... d) |
| Generates a kwk::shape from a list of Extent. | |
| template<int... , kumi::product_type T> | |
| constexpr auto | of_size (T const &t) |
| Generates a kwk::shape from a tuple of Extent. | |
| template<typename SizeType , int... , kumi::product_type T> | |
| constexpr auto | of_size (T const &t) |
| Generates a kwk::shape from a tuple of Extent. | |
| template<char... c> | |
| constexpr auto | operator""_c () noexcept |
| User-defined literal suffix for compile-time constant. | |
| template<concepts::extent... T> | |
| shape (T...) -> shape< to_descriptor(T{})... > | |
| Deduction guide for kwk::shape. | |
| template<concepts::extent... T> | |
| stride (T...) -> stride< to_descriptor(T{})... > | |
| Deduction guide for kwk::stride. | |
| template<concepts::extent... D> | |
| constexpr auto | with_strides (D... d) noexcept |
| Generates a kwk::stride from a list of stride value or joker. | |
Deduction guides | |
| template<rbr::concepts::option... O> | |
| table (O const &...) -> table< __::builder< rbr::settings(table_, O{}...)> > | |
| This deduction guide is provided for kwk::table to allow deduction from a list of options. | |
| template<rbr::concepts::option... O> | |
| table (rbr::settings< O... > const &) -> table< __::builder< rbr::settings(table_, O{}...)> > | |
| This deduction guide is provided for kwk::table to allow deduction from another table's settings. | |
| template<concepts::container C> | |
| table (C const &) -> table< __::builder< C::archetype(table_)> > | |
| This deduction guide is provided for kwk::table to allow deduction from another container. | |
| template<rbr::concepts::option... O> | |
| view (O const &...) -> view< __::builder< rbr::settings(view_, O{}...)> > | |
| This deduction guide is provided for kwk::view to allow deduction from a list of options. | |
| template<rbr::concepts::option... O> | |
| view (rbr::settings< O... > const &) -> view< __::builder< rbr::settings(view_, O{}...)> > | |
| This deduction guide is provided for kwk::view to allow deduction from another view's settings. | |
| template<concepts::container C> | |
| view (C const &) -> view< __::builder< C::archetype(view_)> > | |
| This deduction guide is provided for kwk::view to allow deduction from another container. | |
Variables | |
| constexpr joker | _ = {} |
| Joker value. | |
| constexpr __::allocator_ | allocator = {} |
| Allocator setting for kwk::table. | |
| template<std::int32_t N> | |
| constexpr __::axis_< N > | along = {} |
| Axis specifier for indexed axis. | |
| template<typename T > | |
| constexpr type< T > | as {} |
| Type setting for kwk::table. | |
| template<rbr::literals::str ID> | |
| constexpr __::axis_< ID > | axis = {} |
| Axis specifier for named axis. | |
| constexpr __::category_ | category = {} |
| Category setting discriminating KIWAKU containers. | |
| constexpr auto | channel = axis<"channel"> |
| Predefined axis for channel. | |
| constexpr auto | depth = axis<"depth"> |
| Predefined axis for depth. | |
| constexpr end_t | end = {fixed<0>, ratio{fixed<1>,fixed<1>}} |
| Object representing a whole dimension in slicing. | |
| template<auto N> | |
| constexpr auto | fixed = constant<N>{} |
Provides a short-cut to define a std::integral_constant value from a literal integer. | |
| constexpr __::floor_ | floor = {} |
| Round-to-floor interpolation strategy. | |
| constexpr auto | height = axis<"height"> |
| Predefined axis for height. | |
| constexpr auto | int16 = as<std::int16_t> |
| Pre-defined type settings for std::int16_t. | |
| constexpr auto | int32 = as<std::int32_t> |
| Pre-defined type settings for std::int32_t. | |
| constexpr auto | int64 = as<std::int64_t> |
| Pre-defined type settings for std::int64_t. | |
| constexpr auto | int8 = as<std::int8_t> |
| Pre-defined type settings for std::int8_t. | |
| constexpr __::label_ | label = {} |
| Label setting for kwk::table and kwk::view. | |
| constexpr __::linear_ | linear = {} |
| Linear interpolation strategy. | |
| constexpr auto | real32 = as<float> |
| Pre-defined type settings for float. | |
| constexpr auto | real64 = as<double> |
| Pre-defined type settings for double. | |
| constexpr __::size_ | size = {} |
| Size setting for kwk::table and kwk::view. | |
| constexpr __::source_ | source = {} |
| Data source setting for kwk::table and kwk::view. | |
| constexpr __::strides_ | strides = {} |
| Stride setting for kwk::table and kwk::view. | |
| constexpr __::table_ | table_ = {} |
| kwk::table category setting | |
| constexpr auto | uint16 = as<std::uint16_t> |
| Pre-defined type settings for std::uint16_t. | |
| constexpr auto | uint32 = as<std::uint32_t> |
| Pre-defined type settings for std::uint32_t. | |
| constexpr auto | uint64 = as<std::uint64_t> |
| Pre-defined type settings for std::uint64_t. | |
| constexpr auto | uint8 = as<std::uint8_t> |
| Pre-defined type settings for std::uint8_t. | |
| constexpr auto | unreachable = rbr::flag(__::unreachable_{}) |
| Data reachability option. | |
| constexpr __::view_ | view_ = {} |
| kwk::view category setting | |
| constexpr auto | width = axis<"width"> |
| Predefined axis for width. | |