Hello, I'm sorry for my high delayed answers but my coursework load it's keeping me busy all the time. Good!
I'd recommend to clean up boost/trie/detail/trie_node.hpp : * `value_count` and `self_value_count` - are both members used in code?
Yes. self_value_count is used for the count of values from the current node and value_count means how many values are in the subtree of the current node.
* move `key`, `children` and `parent` to to a separate base class. Define `operator<` and `comparator` only for that base class * make all the accesses to `parent` member through functions (`set_parent()`, `get_parent()`). This will simplify future node-minimization work
I have one question here. The intrusive set that keeps the children of the
node will be of type intrusive_set