#pragma once /// @file /// HashMap holds hash map implementations and typedefs. /// /// The idea is that we can easily swap out the implementation /// in case there is a performance or memory usage concern. #include #include /// A hash map to be used for any kind of small number of key-value pairs. /// Iterators and pointers may be invalidated on modification. template using HashMap = boost::container::flat_map; /// A synchronized hash map is a hash map in which each /// access is thread-safe. In this case, this is achieved by locking /// each access with a mutex (which often ends up being a futex in the implementation). template using SynchronizedHashMap = boost::synchronized_value>;