#pragma once #include #include "commons/commons_array_def.h" template struct inline_vec { array data; uint64_t size; [[nodiscard]] auto operator[](uint64_t i) -> T&; [[nodiscard]] auto operator[](uint64_t i) const -> const T&; [[nodiscard]] auto begin() -> T* { return data.begin(); } [[nodiscard]] auto begin() const -> const T* { return data.begin(); } [[nodiscard]] auto cbegin() const -> const T* { return data.cbegin(); } [[nodiscard]] auto end() -> T* { return data.begin() + size; } [[nodiscard]] auto end() const -> const T* { return data.begin() + size; } [[nodiscard]] auto cend() const -> const T* { return data.cbegin() + size; } operator span() { return span { data.data, size }; } operator span() const { return span { data.data, size }; } };