Fruit, a dependency injection framework for C++