2#include <ossia/detail/hash.hpp> 
    6#if defined(_GLIBCXX_DEBUG) 
    7#define OSSIA_NO_FAST_CONTAINERS 
    8#elif defined(_LIBCPP_DEBUG_LEVEL) && _LIBCPP_DEBUG_LEVEL > 0 
    9#define OSSIA_NO_FAST_CONTAINERS 
   10#elif defined(_LIBCPP_ENABLE_ASSERTIONS) && _LIBCPP_ENABLE_ASSERTIONS > 0 
   11#define OSSIA_NO_FAST_CONTAINERS 
   12#elif defined(_LIBCPP_ENABLE_DEBUG_MODE) 
   13#define OSSIA_NO_FAST_CONTAINERS 
   14#elif defined(_ITERATOR_DEBUG_LEVEL) && _ITERATOR_DEBUG_LEVEL > 0 
   15#define OSSIA_NO_FAST_CONTAINERS 
   19#if !defined(OSSIA_NO_FAST_CONTAINERS) 
   20#include <ankerl/unordered_dense.h> 
   21#include <unordered_map> 
   25    typename K, 
typename H = ossia::hash<K>, 
typename E = ossia::equal_to<K>,
 
   26    typename A = std::allocator<K>>
 
   27using hash_set = ankerl::unordered_dense::set<K, H, E, A>;
 
   30    typename K, 
typename V, 
typename H = ossia::hash<K>, 
typename E = ossia::equal_to<K>,
 
   31    typename A = std::allocator<std::pair<K, V>>>
 
   32using hash_map = ankerl::unordered_dense::map<K, V, H, E, A>;
 
   35    typename K, 
typename V, 
typename H = ossia::hash<K>, 
typename E = ossia::equal_to<K>,
 
   37using hash_multimap = std::unordered_multimap<K, V, H, E>;
 
   40#include <unordered_map> 
   41#include <unordered_set> 
   45    typename K, 
typename H = ossia::hash<K>, 
typename E = ossia::equal_to<K>,
 
   47using hash_set = std::unordered_set<K, H, E>;
 
   50    typename K, 
typename V, 
typename H = ossia::hash<K>, 
typename E = ossia::equal_to<K>,
 
   52using hash_map = std::unordered_map<K, V, H, E>;
 
   55    typename K, 
typename V, 
typename H = ossia::hash<K>, 
typename E = ossia::equal_to<K>,
 
   57using hash_multimap = std::unordered_multimap<K, V, H, E>;