Skip to main content

class intrusive_graph_node

Declaration

template <typename T>
class intrusive_graph_node { /* full declaration omitted */ };

Template Parameters

T

Member Variables

gch::small_vector<dependency> m_dependencies
gch::small_vector<dependent> m_dependents
int m_pseudo_critical_path_length = 0

Member Aliases

  • using dependent = dependency;

Member Function Overview

Member Functions

void add_dependency(dependency dep)

Parameters

dependency dep

auto get_dependencies() const


auto get_dependents() const


int get_pseudo_critical_path_length() const


bool has_dependency(const T* node,
                    std::optional<dependency_kind>
                        kind = std::nullopt) const

Parameters

const T* node
std::optional<dependency_kind> kind = std::nullopt

bool has_dependent(const T* node,
                   std::optional<dependency_kind>
                       kind = std::nullopt) const

Parameters

const T* node
std::optional<dependency_kind> kind = std::nullopt

intrusive_graph_node()


void remove_dependency(const T* node)

Parameters

const T* node

~intrusive_graph_node()


template <typename Range>
static auto find_by_node(Range& rng,
                         const T* node)

Template Parameters

Range

Parameters

Range& rng
const T* node