Improve thhe benchmark to also benchmark types with dependencies. Add a C++ program that generates the benchmark.