@@ -67,6 +67,55 @@ struct to_impl;
6767
6868} // namespace detail
6969
70+
71+ // / @brief A general-purpose graph container.
72+ // /
73+ // / This class represents a highly customizable graph data structure configured by the provided
74+ // / `GraphTraits`. It serves as the primary interface for managing vertices, edges, and their properties.
75+ // /
76+ // / @tparam GraphTraits An instantiation of @ref gl::graph_traits
77+ // /
78+ // / ### Mathematics
79+ // / Here is an inline math equation using Doxygen syntax: \f$ V = E - F + 2 \f$,
80+ // / and one using Big-O: \f$ \mathcal{O}(|V| + |E|) \f$.
81+ // /
82+ // / And here is a normal (multiline) math block:
83+ // /
84+ // / <div>
85+ // / $$
86+ // / \sum_{v \in V} \text{deg}(v) = 2|E|
87+ // / $$
88+ // / </div>
89+ // /
90+ // / Or alternatively for environments like cases:
91+ // /
92+ // / <div>
93+ // / $$
94+ // / A_{i,j} = \begin{cases} 1 & \text{if } (i,j) \in E \\ 0 & \text{otherwise} \end{cases}
95+ // / $$
96+ // / </div>
97+ // /
98+ // / ### Code Example
99+ // / ```cpp
100+ // / gl::directed_graph<> g;
101+ // / auto v1 = g.add_vertex();
102+ // / auto v2 = g.add_vertex();
103+ // / g.add_edge(v1, v2);
104+ // / for (const auto v : graph.vertices()) {
105+ // / std::cout << v << ": ";
106+ // / for (const auto u : graph.neighbors(v)) {
107+ // / std::cout << u << " ";
108+ // / }
109+ // / }
110+ // / ```
111+ // /
112+ // / ### References
113+ // / For a general overview and integration instructions, see the [Project Overview](/#overview)
114+ // / or the [Installation Guide](/#installing-the-library).
115+ // /
116+ // / > [!WARNING]
117+ // / > This class relies on its internal implementation tag to correctly define its layout. Modifying
118+ // / > the underlying structure bypassing the API can lead to undefined behavior.
70119template <traits::c_instantiation_of<graph_traits> GraphTraits>
71120class graph final {
72121public:
0 commit comments