GraphLib
Bearbeitung der Aufgabe Mini Graph Library für OOP WiSe 2023/24
Loading...
Searching...
No Matches
concepts.h File Reference

Defines C++20 concepts used for type constraints in the GraphLib library. More...

#include <concepts>
#include <iostream>
#include <iterator>
#include <type_traits>

Go to the source code of this file.

Concepts

concept  GraphLib::Internal::is_printable
 Checks whether a type supports streaming to std::ostream.
concept  GraphLib::Internal::valid_data_type
 Placeholder for user-defined data types used in vertices or edges.
concept  GraphLib::Internal::valid_id_type
 Concept for a valid ID type in graph components.
concept  GraphLib::Internal::valid_weight_type
 Concept for a valid edge weight type.
concept  GraphLib::Internal::valid_edge_type
 Checks whether a type is an aggregate and derived from Edge\<I\>.
concept  GraphLib::Internal::valid_weighted_edge_type
 Checks whether a type is an aggregate and derived from WeightedEdge<I, W>.
concept  GraphLib::Internal::has_graph_types
 Checks if a type provides the core type aliases (data_type, id_type, edge_type).
concept  GraphLib::Internal::valid_graph_type
 Checks if a type derives from Graph<D, I, E>.
concept  GraphLib::Internal::valid_directed_graph_type
 Checks if a type derives from DirectedGraph.
concept  GraphLib::Internal::valid_undirected_graph_type
 Checks if a type derives from UndirectedGraph.
concept  GraphLib::Internal::valid_weighted_graph_type
 Checks if a type derives from WeightedGraph.
concept  GraphLib::Internal::valid_unweighted_graph_type
 Checks if a type derives from UnweightedGraph.
concept  GraphLib::Internal::valid_unweighted_directed_graph_type
 Graph type that is both unweighted and directed.
concept  GraphLib::Internal::valid_unweighted_undirected_graph_type
 Graph type that is both unweighted and undirected.
concept  GraphLib::Internal::valid_weighted_directed_graph_type
 Graph type that is both weighted and directed.
concept  GraphLib::Internal::valid_weighted_undirected_graph_type
 Graph type that is both weighted and undirected.

Detailed Description

Defines C++20 concepts used for type constraints in the GraphLib library.

This file provides reusable concept definitions that constrain ID types, data types, edge types, and graph inheritance hierarchies. These constraints ensure that graph templates and components are used correctly at compile time.

Definition in file concepts.h.