14#include "llvm/Support/Debug.h"
15#include "llvm/Support/raw_ostream.h"
17#define DEBUG_TYPE "interfaces"
24 for (
auto &it : interfaces)
26 interfaces = std::move(rhs.interfaces);
31 for (
auto &it : interfaces)
35void detail::InterfaceMap::insert(
TypeID interfaceId,
void *conceptImpl) {
38 llvm::lower_bound(interfaces, interfaceId, [](
const auto &it,
TypeID id) {
39 return compare(it.first,
id);
41 if (it != interfaces.end() && it->first == interfaceId) {
42 LLVM_DEBUG(llvm::dbgs() <<
"Ignoring repeated interface registration\n");
46 interfaces.insert(it, {interfaceId, conceptImpl});
This class provides an efficient unique identifier for a specific C++ type.
This class provides an efficient mapping between a given Interface type, and a particular implementat...
InterfaceMap & operator=(InterfaceMap &&rhs)
Include the generated interface declarations.