|  | #pragma once | 
|  |  | 
|  | namespace caffe2 { | 
|  |  | 
|  | // Get value from map given key. Return supplied default value if not found | 
|  | // This is a stripped down version from folly: | 
|  | // https://github.com/facebook/folly/blob/5a07e203d79324b68d69f294fa38e43b9671e9b1/folly/MapUtil.h#L35-L45 | 
|  | template < | 
|  | class Map, | 
|  | typename Key = typename Map::key_type, | 
|  | typename Value = typename Map::mapped_type> | 
|  | typename Map::mapped_type | 
|  | get_default(const Map& map, const Key& key, Value&& dflt) { | 
|  | using M = typename Map::mapped_type; | 
|  | auto pos = map.find(key); | 
|  | return (pos != map.end()) ? (pos->second) : M(std::forward<Value>(dflt)); | 
|  | } | 
|  |  | 
|  | } // namespace caffe2 |