Aller au contenu
Bienvenue sur la nouvelle documentation de CppUtils !
using CppUtils::Container::MultiKeyMap<KeysAndValue>::ValueType = std::tuple_element_t<keyCount, AllTypesTuple>;
using CppUtils::Container::MultiKeyMap<KeysAndValue>::Entry = Detail::EntryStorage<PureKeysTuple, ValueType>;
using CppUtils::Container::MultiKeyMap<KeysAndValue>::value_type = Entry;
using CppUtils::Container::MultiKeyMap<KeysAndValue>::size_type = std::size_t;
using CppUtils::Container::MultiKeyMap<KeysAndValue>::difference_type = std::ptrdiff_t;
using CppUtils::Container::MultiKeyMap<KeysAndValue>::reference = Entry&;
using CppUtils::Container::MultiKeyMap<KeysAndValue>::const_reference = const Entry&;
using CppUtils::Container::MultiKeyMap<KeysAndValue>::pointer = Entry*;
using CppUtils::Container::MultiKeyMap<KeysAndValue>::const_pointer = const Entry*;
using CppUtils::Container::MultiKeyMap<KeysAndValue>::StorageVector = std::vector<Entry>;
using CppUtils::Container::MultiKeyMap<KeysAndValue>::iterator = typename StorageVector::iterator;
using CppUtils::Container::MultiKeyMap<KeysAndValue>::const_iterator = typename StorageVector::const_iterator;
using CppUtils::Container::MultiKeyMap<KeysAndValue>::reverse_iterator = typename StorageVector::reverse_iterator;
using CppUtils::Container::MultiKeyMap<KeysAndValue>::const_reverse_iterator = typename StorageVector::const_reverse_iterator;
static constexpr constexpr auto keyCount = sizeof...(KeysAndValue) - 1uz;
template <class TargetKey>
[[nodiscard]] static consteval auto MultiKeyMap::resolveKeyIndex() noexcept -> std::size_t;
template <String::Hasher Tag>
[[nodiscard]] static consteval auto MultiKeyMap::resolveTagPosition() noexcept -> std::size_t;
[[nodiscard]] static constexpr auto MultiKeyMap::makeEntry(auto&&... args) -> Entry;
MultiKeyMap::MultiKeyMap() = default;
explicit MultiKeyMap::MultiKeyMap(auto&&... entries) requires (sizeof...(entries) > 0 and (std::same_as<std::remove_cvref_t<decltype(entries)>, Entry> and ...));
template <std::input_iterator InputIterator>
MultiKeyMap::MultiKeyMap(InputIterator first, InputIterator last);
auto MultiKeyMap::insert(Entry entry) -> std::pair<iterator, bool>;
auto MultiKeyMap::insert(auto&&... args) -> std::pair<iterator, bool> requires (sizeof...(args) > 1 or (sizeof...(args) == 1 and (not std::same_as<std::remove_cvref_t<decltype(args)>, Entry> and ...)));
auto MultiKeyMap::emplace(auto&&... args) -> std::pair<iterator, bool>;
template <class... Args>
auto MultiKeyMap::emplace_back(Args&&... args) -> reference;
template <std::input_iterator InputIterator>
auto MultiKeyMap::insert(InputIterator first, InputIterator last) -> void;
auto MultiKeyMap::insert_range(std::ranges::input_range auto&& range) -> void;
template <std::size_t Index>
[[nodiscard]] auto MultiKeyMap::findAt(this auto&& self, const auto& key) -> decltype(auto);
[[nodiscard]] auto MultiKeyMap::find(this auto&& self, const auto& key) -> decltype(auto);
template <String::Hasher Tag>
[[nodiscard]] auto MultiKeyMap::find(this auto&& self, const auto& key) -> decltype(auto);
template <std::size_t Index>
[[nodiscard]] auto MultiKeyMap::findIteratorAt(this auto&& self, const auto& key) -> decltype(auto);
[[nodiscard]] auto MultiKeyMap::findIterator(this auto&& self, const auto& key) -> decltype(auto);
template <String::Hasher Tag>
[[nodiscard]] auto MultiKeyMap::findIterator(this auto&& self, const auto& key) -> decltype(auto);
template <std::size_t Index>
[[nodiscard]] auto MultiKeyMap::containsAt(const auto& key) const -> bool;
[[nodiscard]] auto MultiKeyMap::contains(const auto& key) const -> bool;
template <String::Hasher Tag>
[[nodiscard]] auto MultiKeyMap::contains(const auto& key) const -> bool;
template <std::size_t Index>
[[nodiscard]] auto MultiKeyMap::countAt(const auto& key) const -> std::size_t;
[[nodiscard]] auto MultiKeyMap::count(const auto& key) const -> std::size_t;
template <String::Hasher Tag>
[[nodiscard]] auto MultiKeyMap::count(const auto& key) const -> std::size_t;
template <std::size_t Index>
[[nodiscard]] auto MultiKeyMap::atIndex(this auto&& self, const auto& key) -> decltype(auto);
[[nodiscard]] auto MultiKeyMap::at(this auto&& self, const auto& key) -> decltype(auto);
template <String::Hasher Tag>
[[nodiscard]] auto MultiKeyMap::at(this auto&& self, const auto& key) -> decltype(auto);
[[nodiscard]] auto MultiKeyMap::operator[](this auto&& self, const auto& key) -> decltype(auto);
template <std::size_t Index>
auto MultiKeyMap::eraseAt(const auto& key);
auto MultiKeyMap::erase(const auto& key) requires (not std::same_as<std::remove_cvref_t<decltype(key)>, const_iterator> and not std::same_as<std::remove_cvref_t<decltype(key)>, iterator>);
template <String::Hasher Tag>
auto MultiKeyMap::erase(const auto& key);
auto MultiKeyMap::erase(const_iterator position) -> iterator;
auto MultiKeyMap::erase(const_iterator first, const_iterator last) -> iterator;
auto MultiKeyMap::clear() noexcept -> void;
auto MultiKeyMap::reserve(std::size_t newCapacity) -> void;
[[nodiscard]] auto MultiKeyMap::begin() noexcept -> iterator;
[[nodiscard]] auto MultiKeyMap::begin() const noexcept -> const_iterator;
[[nodiscard]] auto MultiKeyMap::cbegin() const noexcept -> const_iterator;
[[nodiscard]] auto MultiKeyMap::end() noexcept -> iterator;
[[nodiscard]] auto MultiKeyMap::end() const noexcept -> const_iterator;
[[nodiscard]] auto MultiKeyMap::cend() const noexcept -> const_iterator;
[[nodiscard]] auto MultiKeyMap::rbegin() noexcept -> reverse_iterator;
[[nodiscard]] auto MultiKeyMap::rbegin() const noexcept -> const_reverse_iterator;
[[nodiscard]] auto MultiKeyMap::crbegin() const noexcept -> const_reverse_iterator;
[[nodiscard]] auto MultiKeyMap::rend() noexcept -> reverse_iterator;
[[nodiscard]] auto MultiKeyMap::rend() const noexcept -> const_reverse_iterator;
[[nodiscard]] auto MultiKeyMap::crend() const noexcept -> const_reverse_iterator;
[[nodiscard]] auto MultiKeyMap::empty() const noexcept -> bool;
[[nodiscard]] auto MultiKeyMap::size() const noexcept -> std::size_t;
[[nodiscard]] auto MultiKeyMap::max_size() const noexcept -> std::size_t;
[[nodiscard]] auto MultiKeyMap::capacity() const noexcept -> std::size_t;
[[nodiscard]] auto MultiKeyMap::front() -> reference;
[[nodiscard]] auto MultiKeyMap::front() const -> const_reference;
[[nodiscard]] auto MultiKeyMap::back() -> reference;
[[nodiscard]] auto MultiKeyMap::back() const -> const_reference;