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> 21 using OperatorMap = std::map<Kind, std::vector<Operator>>;
24 const auto&
all()
const {
return _operators; }
27 const auto&
allOfKind(Kind kind)
const {
return _operators.at(kind); }
30 void register_(Kind kind, Operator info) { _operators[kind].push_back(std::move(info)); }
36 for (
auto a : _operators ) {
37 for (
const auto& info : a.second ) {
39 auto n = abi::__cxa_demangle(info.typename_().c_str(),
nullptr,
nullptr, &status);
40 HILTI_DEBUG(logging::debug::Overloads,
hilti::util::fmt(
"registered %s for operator '%s'", (n ? n : info.typename_().c_str()), to_string(info.kind())));
53 OperatorMap _operators;
Definition: operator-registry.h:19
const auto & allOfKind(Kind kind) const
Definition: operator-registry.h:27
std::string fmt(const char *fmt, const Args &... args)
Definition: util.h:80
const auto & all() const
Definition: operator-registry.h:24
Definition: operator-registry.h:57
static auto & singleton()
Definition: operator-registry.h:47
void register_(Kind kind, Operator info)
Definition: operator-registry.h:30