Lines Matching defs:Factory
77 /// should use a Factory object to create maps instead of directly
101 class Factory {
102 typename TreeTy::Factory F;
106 Factory(bool canonicalize = true) : Canonicalize(canonicalize) {}
108 Factory(BumpPtrAllocator &Alloc, bool canonicalize = true)
111 Factory(const Factory &) = delete;
112 Factory &operator=(const Factory &) = delete;
127 typename TreeTy::Factory *getTreeFactory() const {
128 return const_cast<typename TreeTy::Factory *>(&F);
266 using FactoryTy = typename TreeTy::Factory;
270 FactoryTy *Factory;
274 /// should use a Factory object to create maps instead of directly
278 : Root(const_cast<TreeTy *>(R)), Factory(F) {
285 typename ImmutableMap<KeyT, ValT>::Factory &F)
287 Factory(F.getTreeFactory()) {
291 ImmutableMapRef(const ImmutableMapRef &X) : Root(X.Root), Factory(X.Factory) {
311 Factory = X.Factory;
329 TreeTy *NewT = Factory->add(Root, std::pair<key_type, data_type>(K, D));
330 return ImmutableMapRef(NewT, Factory);
334 TreeTy *NewT = Factory->remove(Root, K);
335 return ImmutableMapRef(NewT, Factory);
343 return ImmutableMap<KeyT, ValT>(Factory->getCanonicalTree(Root));