/** A graph vertex. * * @file * @author Daniel Krebs * @copyright 2014-2022, Institute for Automation of Complex Power Systems, EONERC * @license Apache License 2.0 *********************************************************************************/ #pragma once namespace villas { namespace graph { class Vertex { template friend class DirectedGraph; public: using Identifier = std::size_t; const Identifier& getIdentifier() const { return id; } friend std::ostream& operator<< (std::ostream &stream, const Vertex &vertex) { return stream << vertex.id; } bool operator==(const Vertex &other) { return this->id == other.id; } private: Identifier id; // HACK: how to resolve this circular type dependency? std::list edges; }; } /* namespace graph */ } /* namespace villas */