title: How to manage the boost::di injector?
body: <p>I don't seem to grasp the usefulness of using an <a href="https://boost-experimental.github.io/di/user_guide/index.html#injector" rel="noreferrer"><code>injector</code></a> with <a href="https://boost-experimental.github.io/di/index.html" rel="noreferrer">boost::di</a>.</p>
  
  <p>I think I understand the power of <a href="https://en.wikipedia.org/wiki/Dependency_injection" rel="noreferrer">dependency injection</a>, and how its extensive usage leads to large number of arguments in classes' constructors.
  I also see how the library helps managing the scope of dependencies and other things.</p>
  
  <p>What I don't see, is that how this <code>injector</code> does not became a collection of input parameters for the used classes. I'm afraid that instead of passing all the singletons in the application to each object, I'm going to pass the fully configured <code>injector</code> object. It's true that it's a lot simpler than keeping track of <em>all</em> the singletons and other dependencies, but still, it seems that this approach just mitigates the problem instead of solving it, like it promises.</p>
  
  <p>Is the <code>injector</code> just a fancy factory? Should I make my <code>injector</code> global to avoid this?</p>
  
  <p>Dependency injection frameworks are fairly popular, so I must miss something.</p>