// file : odb/traversal/enum.hxx // copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC // license : GNU GPL v3; see accompanying LICENSE file #ifndef ODB_TRAVERSAL_ENUM_HXX #define ODB_TRAVERSAL_ENUM_HXX #include #include namespace traversal { struct enumerates: edge { enumerates () {} enumerates (node_dispatcher& n) { node_traverser (n); } virtual void traverse (type&); }; struct enumerator: node {}; struct underlies: edge { underlies () {} underlies (node_dispatcher& n) { node_traverser (n); } virtual void traverse (type&); }; struct enum_: node { virtual void traverse (type&); virtual void underlied (type&); virtual void underlied (type&, edge_dispatcher&); virtual void enumerates (type&); virtual void enumerates (type&, edge_dispatcher&); }; } #endif // ODB_TRAVERSAL_ENUM_HXX