tendril::ptr& tendrils::operator[](const std::string& name) { boost::mutex::scoped_lock lock(mtx); storage_type::iterator it = storage.find(name); if (it == end()) doesnt_exist(name); return it->second; }
T& get(const std::string& name) const { try { const_iterator iter = storage.find(name); if (iter == end()) doesnt_exist(name); return iter->second->get<T>(); } catch (except::TypeMismatch& e) { e << std::string(" Hint : ") + "'" + name + "' is of type: " + storage.at(name)->type_name(); throw e; } }
T& get(const std::string& name) const { const_iterator iter = storage.find(name); try { if (iter == end()) doesnt_exist(name); return iter->second->get<T>(); } catch (except::TypeMismatch& e) { e << except::actualtype_hint(iter->first) << except::tendril_key(name) ; throw; } }