#include "trie.hpp" #include template struct Visitor { void operator()(const Object &object) const { std::cout << "visit object:" << object << std::endl; } }; template void visit(const Object &object) { std::cout << "visit function:" << object << std::endl; } int main() { Trie trie_; trie_.insert("Lehn", 42); trie_.insert("Fo", 123); trie_.insert("Lehr", 666); trie_.insert("Lehr", 667); trie_.insert("Lehr", 668); Trie trie; trie = trie_; std::cout << "visiting:" << std::endl; trie.visit("Le", Visitor()); std::cout << "visiting:" << std::endl; trie.visit("", Visitor()); trie.visit("", visit); }