37 static std::shared_ptr<T>
instance(
size_t id = 0) {
38 auto resource = resources_[id].lock();
41 resources_[id] = resource;
43 if (resources_.size() > last_size_ + CLEAR_THRESHOLD) {
44 std::vector<size_t> to_erase;
45 for (
auto& pair : resources_) {
46 if (pair.second.expired()) {
47 to_erase.push_back(pair.first);
50 for (
auto id : to_erase) {
54 last_size_ = resources_.size();