9 #include <hilti/ast/expression.h> 10 #include <hilti/ast/expressions/resolved-operator.h> 11 #include <hilti/ast/expressions/unresolved-operator.h> 12 #include <hilti/ast/operator.h> 13 #include <hilti/ast/types/struct.h> 20 using OperatorMap = std::map<Kind, std::vector<Operator>>;
23 const auto&
all()
const {
return _operators; }
26 const auto&
allOfKind(Kind kind)
const {
return _operators.at(kind); }
29 void register_(Kind kind, Operator info) { _operators[kind].push_back(std::move(info)); }
35 for (
auto a : _operators ) {
36 for (
const auto& info : a.second ) {
38 auto n = abi::__cxa_demangle(info.typename_().c_str(),
nullptr,
nullptr, &status);
39 HILTI_DEBUG(logging::debug::Overloads, hilti::util::fmt(
"registered %s for operator '%s'", (n ? n : info.typename_().c_str()), to_string(info.kind())));
52 OperatorMap _operators;
Definition: operator-registry.h:15
Definition: operator-registry.h:18
const auto & allOfKind(Kind kind) const
Definition: operator-registry.h:26
const auto & all() const
Definition: operator-registry.h:23
Definition: operator-registry.h:56
static auto & singleton()
Definition: operator-registry.h:46
void register_(Kind kind, Operator info)
Definition: operator-registry.h:29