template<class D, class K, size_t N = 16>
class fe::XTrie< D, K, N >
Hash-consed sets of D*.
Small sets are sorted arrays, large ones paths in a trie; either way, equal sets are pointer-equal. This is an IndexedTrie as described here. K is a key trait that grants access to the two uint32_ts XTrie needs on D:
struct Key {
static uint32_t gid(const D*) noexcept;
static uint32_t tid(const D*) noexcept;
static void set_tid(const D*, uint32_t) noexcept;
static std::ostream& stream(std::ostream&, const D*);
};
N is the maximum size of an array set; bigger sets live in the trie.
Definition at line 39 of file xtrie.h.
template<class D, class K, size_t N = 16>
template<std::random_access_iterator I>