https://github.com/boostorg/compute/blob/36c89134d4013b2e5e45bc55656a18bd6141995a/include/boost/compute/detail/lru_cache.hpp#L102 Since i is a valid iterator, we can replace this call with. **m_map[key]** = std::make_pair(value, j); with **i->second** = std::make_pair(value, j); avoiding the second map search.