Create an operation instance.
113 {
114 if constexpr (has_operation_category<OpClass>::value) {
115 TypeKey key { OpClass::operation_category, std::type_index(typeid(OpClass)) };
118 return std::static_pointer_cast<OpClass>(
119 std::any_cast<std::shared_ptr<void>>(it->second()));
120 }
121 }
122
124 if (key.operation_type == std::type_index(typeid(OpClass))) {
125 return std::static_pointer_cast<OpClass>(
126 std::any_cast<std::shared_ptr<void>>(factory()));
127 }
128 }
129
130 return nullptr;
131 }
std::unordered_map< TypeKey, Factory, TypeKeyHash > m_factories