Aller au contenu
Bienvenue sur la nouvelle documentation de CppUtils !
using CppUtils::Container::TypedStack<SupportedTypes>::Logger = Logger<"CppUtils">;
using CppUtils::Container::TypedStack<SupportedTypes>::Types = std::tuple<SupportedTypes...>;
static constexpr constexpr auto typesSize = std::array<std::size_t, sizeof...(SupportedTypes)>{sizeof(SupportedTypes)...};
template <Type::TriviallyCopyable... Args>
constexpr explicit TypedStack::TypedStack(Args... values);
[[nodiscard]] constexpr auto TypedStack::empty() const noexcept -> bool;
[[nodiscard]] constexpr auto TypedStack::size() const noexcept -> std::size_t;
[[nodiscard]] constexpr auto TypedStack::getByteSize() const noexcept -> std::size_t;
[[nodiscard]] constexpr auto TypedStack::getType(std::size_t position) const -> std::size_t;
template <Type::TriviallyCopyable T>
[[nodiscard]] constexpr auto TypedStack::get(std::size_t position) const -> T;
template <Type::TriviallyCopyable T>
[[nodiscard]] constexpr auto TypedStack::top() const -> decltype(auto);
constexpr auto TypedStack::top(auto&& visitor) const -> void;
template <Type::TriviallyCopyable T>
constexpr auto TypedStack::set(std::size_t position, T newValue) -> void;
template <Type::TriviallyCopyable T>
constexpr auto TypedStack::set(T newValue) -> void;
template <Type::TriviallyCopyable T>
constexpr auto TypedStack::push(T value = T{}) -> void;
constexpr auto TypedStack::pushType(std::size_t type) -> void;
constexpr auto TypedStack::drop() -> void;
template <Type::TriviallyCopyable T>
[[nodiscard]] constexpr auto TypedStack::pop() -> decltype(auto);
constexpr auto TypedStack::pop(auto&& visitor) -> void;
constexpr auto TypedStack::copy(std::size_t sourcePosition, std::size_t destinationPosition) -> void;
constexpr auto TypedStack::visit(std::size_t position, auto&& visitor) const -> void;
constexpr auto TypedStack::print(std::size_t position) const -> void;
template <class ReturnType, class... Args>
constexpr auto TypedStack::call(ReturnType (*function)(Args...)) -> void;
template <class ReturnType, class Object, class... Args>
constexpr auto TypedStack::call(ReturnType (Object::*function)(Args...)) -> void;
template <class ReturnType, class Object, class... Args>
constexpr auto TypedStack::call(ReturnType (Object::*function)(Args...) const) -> void;