Aller au contenu
Bienvenue sur la nouvelle documentation de CppUtils !
using CppUtils::Container::MeshNodePtr< Key, Value, Policy >::Branch< IsConst >::VectorAccessor = std::conditional_t<IsConst, Thread::ReadOnlyAccessor<std::vector<Link> >, Thread::Accessor<std::vector<Link>, Thread::SharedMutex> >;
constexpr Branch::Branch() = default;

constexpr Branch::Branch(MeshNodePtr parent, Key key, SafeShared<std::vector<Link>> branchLinks, VectorAccessor vectorAccessor);

[[nodiscard]] constexpr auto Branch::size() const noexcept -> std::size_t;

[[nodiscard]] constexpr auto Branch::empty() const noexcept -> bool;

[[nodiscard]] constexpr auto Branch::contains(const MeshNodePtr& node) const -> bool;

constexpr auto Branch::clear() -> void requires (not IsConst) { m_vectorAccessor.reset(); MeshNodePtr::detach(m_parent, m_key); } [[nodiscard]] constexpr auto operator[](std::size_t index) const -> std::expected<MeshNodePtr, std::string_view>;

[[nodiscard]] constexpr auto Branch::operator[](std::size_t index) const -> std::expected<MeshNodePtr, std::string_view>;

constexpr auto Branch::operator>>(const MeshNodePtr& other) -> const MeshNodePtr &;

constexpr auto Branch::operator>>(Branch<false> &&other) -> Branch<false> &&;

constexpr auto Branch::operator-(const MeshNodePtr& other) -> void;

template <bool OtherIsConst>
constexpr auto Branch::operator&(const Branch<OtherIsConst> &other) -> void;

template <bool OtherIsConst>
constexpr auto Branch::operator/(const Branch<OtherIsConst>& other) -> void requires (not IsConst) { m_vectorAccessor.reset(); other.m_vectorAccessor.reset(); MeshNodePtr::detach(other.m_key, m_parent, m_key, other.m_parent); } [[nodiscard]] constexpr auto front() const;

[[nodiscard]] constexpr auto Branch::front() const;

[[nodiscard]] constexpr auto Branch::back() const;

[[nodiscard]] constexpr auto Branch::begin() const [[clang::lifetimebound, msvc::lifetimebound]];

[[nodiscard]] constexpr auto Branch::end() const [[clang::lifetimebound, msvc::lifetimebound]];