202 using type = std::tuple<key_type<T>...>;
205 for (
auto i = 0u; i <
m_keys.size(); ++i) {
206 auto _k = std::dynamic_pointer_cast<key_type>(
m_keys[i]);
207 if (_k && std::operator==(_k->value, v)) {
208 return m_objects[i]->findOrCreate<U>(t...);
211 m_keys.push_back(std::shared_ptr<IKey>(
new key_type{ std::move(v) }));
212 auto objects = std::make_shared<ObjectList>();
214 return std::make_pair(objects->create<U>(t...),
true);