9 #include <unordered_map>
28 class Atom :
public Atomic {
58 void write(std::ostream &os)
const override;
64 using AtomTable = std::map<std::string, std::optional<std::weak_ptr<Atom>>, std::less<>>;
69 using AtomPtr = std::shared_ptr<Atom>;
std::map< std::string, std::optional< std::weak_ptr< Atom > >, std::less<> > AtomTable
static std::shared_ptr< knowrob::Atom > Tabled(std::string_view stringForm)
Atom(std::string_view stringForm, AtomType atomType=AtomType::REGULAR)
void write(std::ostream &os) const override
AtomType atomType() const
bool isSameAtom(const Atom &other) const
std::string_view stringForm_
std::string_view stringForm() const final
static AtomTable & table()
std::shared_ptr< Atom > AtomPtr