Remind me what it does again would you (a quick glance at the Readme did not help)?
Boost.DI it's a dependency injection
(http://en.wikipedia.org/wiki/Dependency_injection) library improving manual
dependency injection by simplifying object instantiation with automatic
dependencies injection.
It's a bit like Google Guice for Java (https://github.com/google/guice) or
Ninject for C# (http://www.ninject.org).
The simplest example di is good at:
struct iwriter { ~iwriter() = default; virtual void write() = 0; };
struct writer_impl : iwriter { void write() override {} };
class hello_world {
public:
hello_world(unique_ptr<iwriter> writer) : writer(writer) { } //
construct with iwriter dependency
void run() { writer.write(); }
private:
unique_ptr<iwriter> writer;
};
int main() {
// automatic dependency using boost.di
auto injector = di::make_injector(
di::bind
Was it that new way of doing unit testing thing discussed here some time ago? Well, not sure what was discussed, but automatic di let you implement automatic mocks injection, which is really cool and basically let you get rid of writing mocks and creating them for tests (https://github.com/krzysztof-jusiak/mocks_injector)
Hope that helps a bit. Cheers, Kris -- View this message in context: http://boost.2283326.n4.nabble.com/List-of-C-11-only-Boost-libraries-and-the... Sent from the Boost - Dev mailing list archive at Nabble.com.