in include/PatriciaTreeSet.h [471:489]
inline bool contains(
IntegerType key,
const boost::intrusive_ptr<PatriciaTree<IntegerType>>& tree) {
if (tree == nullptr) {
return false;
}
if (tree->is_leaf()) {
const auto& leaf =
boost::static_pointer_cast<PatriciaTreeLeaf<IntegerType>>(tree);
return key == leaf->key();
}
const auto& branch =
boost::static_pointer_cast<PatriciaTreeBranch<IntegerType>>(tree);
if (is_zero_bit(key, branch->branching_bit())) {
return contains(key, branch->left_tree());
} else {
return contains(key, branch->right_tree());
}
}