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...>;
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;

constexpr auto typesSize;