gitextract_euz3n4tr/ ├── .appveyor.yml ├── .clang-format ├── .clang-tidy ├── .gitattributes ├── .travis.yml ├── .user-config.jam ├── CMakeLists.txt ├── Makefile ├── README.md ├── benchmark/ │ ├── Makefile │ ├── bind_error/ │ │ ├── dagger2.java │ │ ├── di.cpp │ │ ├── dicpp.cpp │ │ ├── fruit.cpp │ │ ├── guice.java │ │ └── ninject.cs │ ├── bind_interface/ │ │ ├── dagger2.java │ │ ├── di.cpp │ │ ├── dicpp.cpp │ │ ├── fruit.cpp │ │ ├── guice.java │ │ └── ninject.cs │ ├── bind_value/ │ │ ├── dagger2.java │ │ ├── di.cpp │ │ ├── dicpp.cpp │ │ ├── fruit.cpp │ │ ├── guice.java │ │ └── ninject.cs │ ├── create_complex/ │ │ ├── dagger2.java │ │ ├── di.cpp │ │ ├── dicpp.cpp │ │ ├── fruit.cpp │ │ ├── guice.java │ │ └── ninject.cs │ ├── create_simple/ │ │ ├── dagger2.java │ │ ├── di.cpp │ │ ├── dicpp.cpp │ │ ├── fruit.cpp │ │ ├── guice.java │ │ └── ninject.cs │ ├── generate_test.py │ └── performance/ │ ├── Makefile │ ├── di.cpp │ ├── di.sh │ └── header.cpp ├── doc/ │ ├── CHANGELOG.md │ ├── FAQ.md │ ├── benchmarks.md │ ├── concepts-driven-design-with-di/ │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── CONTRIBUTING.md │ │ ├── Gruntfile.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── css/ │ │ │ ├── print/ │ │ │ │ ├── paper.css │ │ │ │ └── pdf.css │ │ │ ├── reveal.css │ │ │ ├── reveal.scss │ │ │ └── theme/ │ │ │ ├── README.md │ │ │ ├── beige.css │ │ │ ├── black.css │ │ │ ├── blood.css │ │ │ ├── league.css │ │ │ ├── moon.css │ │ │ ├── night.css │ │ │ ├── serif.css │ │ │ ├── simple.css │ │ │ ├── sky.css │ │ │ ├── solarized.css │ │ │ ├── source/ │ │ │ │ ├── beige.scss │ │ │ │ ├── black.scss │ │ │ │ ├── blood.scss │ │ │ │ ├── league.scss │ │ │ │ ├── moon.scss │ │ │ │ ├── night.scss │ │ │ │ ├── serif.scss │ │ │ │ ├── simple.scss │ │ │ │ ├── sky.scss │ │ │ │ ├── solarized.scss │ │ │ │ └── white.scss │ │ │ ├── template/ │ │ │ │ ├── mixins.scss │ │ │ │ ├── settings.scss │ │ │ │ └── theme.scss │ │ │ └── white.css │ │ ├── example/ │ │ │ ├── god_object.cpp │ │ │ ├── static_polymorphism.cpp │ │ │ └── type_erasure.cpp │ │ ├── index.html │ │ ├── js/ │ │ │ └── reveal.js │ │ ├── lib/ │ │ │ ├── css/ │ │ │ │ └── zenburn.css │ │ │ ├── font/ │ │ │ │ ├── league-gothic/ │ │ │ │ │ ├── LICENSE │ │ │ │ │ └── league-gothic.css │ │ │ │ └── source-sans-pro/ │ │ │ │ ├── LICENSE │ │ │ │ └── source-sans-pro.css │ │ │ └── js/ │ │ │ ├── classList.js │ │ │ └── html5shiv.js │ │ ├── package.json │ │ ├── plugin/ │ │ │ ├── highlight/ │ │ │ │ └── highlight.js │ │ │ ├── markdown/ │ │ │ │ ├── example.html │ │ │ │ ├── example.md │ │ │ │ ├── markdown.js │ │ │ │ └── marked.js │ │ │ ├── math/ │ │ │ │ └── math.js │ │ │ ├── multiplex/ │ │ │ │ ├── client.js │ │ │ │ ├── index.js │ │ │ │ └── master.js │ │ │ ├── notes/ │ │ │ │ ├── notes.html │ │ │ │ └── notes.js │ │ │ ├── notes-server/ │ │ │ │ ├── client.js │ │ │ │ ├── index.js │ │ │ │ └── notes.html │ │ │ ├── print-pdf/ │ │ │ │ └── print-pdf.js │ │ │ ├── search/ │ │ │ │ └── search.js │ │ │ └── zoom-js/ │ │ │ └── zoom.js │ │ ├── test/ │ │ │ ├── examples/ │ │ │ │ ├── barebones.html │ │ │ │ ├── embedded-media.html │ │ │ │ ├── math.html │ │ │ │ ├── slide-backgrounds.html │ │ │ │ └── slide-transitions.html │ │ │ ├── qunit-1.12.0.css │ │ │ ├── qunit-1.12.0.js │ │ │ ├── test-markdown-element-attributes.html │ │ │ ├── test-markdown-element-attributes.js │ │ │ ├── test-markdown-slide-attributes.html │ │ │ ├── test-markdown-slide-attributes.js │ │ │ ├── test-markdown.html │ │ │ ├── test-markdown.js │ │ │ ├── test-pdf.html │ │ │ ├── test-pdf.js │ │ │ ├── test.html │ │ │ └── test.js │ │ └── uml/ │ │ ├── app0.uml │ │ ├── app1.uml │ │ ├── app2.uml │ │ ├── app3.uml │ │ ├── app4.uml │ │ └── guideline.uml │ ├── cpp-london-2017/ │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── CONTRIBUTING.md │ │ ├── Gruntfile.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── css/ │ │ │ ├── print/ │ │ │ │ ├── paper.css │ │ │ │ └── pdf.css │ │ │ ├── reveal.css │ │ │ ├── reveal.scss │ │ │ └── theme/ │ │ │ ├── README.md │ │ │ ├── beige.css │ │ │ ├── black.css │ │ │ ├── blood.css │ │ │ ├── league.css │ │ │ ├── moon.css │ │ │ ├── night.css │ │ │ ├── serif.css │ │ │ ├── simple.css │ │ │ ├── sky.css │ │ │ ├── solarized.css │ │ │ ├── source/ │ │ │ │ ├── beige.scss │ │ │ │ ├── black.scss │ │ │ │ ├── blood.scss │ │ │ │ ├── league.scss │ │ │ │ ├── moon.scss │ │ │ │ ├── night.scss │ │ │ │ ├── serif.scss │ │ │ │ ├── simple.scss │ │ │ │ ├── sky.scss │ │ │ │ ├── solarized.scss │ │ │ │ └── white.scss │ │ │ ├── template/ │ │ │ │ ├── mixins.scss │ │ │ │ ├── settings.scss │ │ │ │ └── theme.scss │ │ │ └── white.css │ │ ├── example/ │ │ │ ├── god_object.cpp │ │ │ ├── static_polymorphism.cpp │ │ │ └── type_erasure.cpp │ │ ├── index.html │ │ ├── js/ │ │ │ └── reveal.js │ │ ├── lib/ │ │ │ ├── css/ │ │ │ │ └── zenburn.css │ │ │ ├── font/ │ │ │ │ ├── league-gothic/ │ │ │ │ │ ├── LICENSE │ │ │ │ │ └── league-gothic.css │ │ │ │ └── source-sans-pro/ │ │ │ │ ├── LICENSE │ │ │ │ └── source-sans-pro.css │ │ │ └── js/ │ │ │ ├── classList.js │ │ │ └── html5shiv.js │ │ ├── package.json │ │ ├── plugin/ │ │ │ ├── highlight/ │ │ │ │ └── highlight.js │ │ │ ├── markdown/ │ │ │ │ ├── example.html │ │ │ │ ├── example.md │ │ │ │ ├── markdown.js │ │ │ │ └── marked.js │ │ │ ├── math/ │ │ │ │ └── math.js │ │ │ ├── multiplex/ │ │ │ │ ├── client.js │ │ │ │ ├── index.js │ │ │ │ └── master.js │ │ │ ├── notes/ │ │ │ │ ├── notes.html │ │ │ │ └── notes.js │ │ │ ├── notes-server/ │ │ │ │ ├── client.js │ │ │ │ ├── index.js │ │ │ │ └── notes.html │ │ │ ├── print-pdf/ │ │ │ │ └── print-pdf.js │ │ │ ├── search/ │ │ │ │ └── search.js │ │ │ └── zoom-js/ │ │ │ └── zoom.js │ │ ├── test/ │ │ │ ├── examples/ │ │ │ │ ├── barebones.html │ │ │ │ ├── embedded-media.html │ │ │ │ ├── math.html │ │ │ │ ├── slide-backgrounds.html │ │ │ │ └── slide-transitions.html │ │ │ ├── qunit-1.12.0.css │ │ │ ├── qunit-1.12.0.js │ │ │ ├── test-markdown-element-attributes.html │ │ │ ├── test-markdown-element-attributes.js │ │ │ ├── test-markdown-slide-attributes.html │ │ │ ├── test-markdown-slide-attributes.js │ │ │ ├── test-markdown.html │ │ │ ├── test-markdown.js │ │ │ ├── test-pdf.html │ │ │ ├── test-pdf.js │ │ │ ├── test.html │ │ │ └── test.js │ │ └── uml/ │ │ ├── app0.uml │ │ ├── app1.uml │ │ ├── app2.uml │ │ ├── app3.uml │ │ └── app4.uml │ ├── cppnow-2016/ │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── CONTRIBUTING.md │ │ ├── Gruntfile.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── css/ │ │ │ ├── print/ │ │ │ │ ├── paper.css │ │ │ │ └── pdf.css │ │ │ ├── reveal.css │ │ │ ├── reveal.scss │ │ │ └── theme/ │ │ │ ├── README.md │ │ │ ├── beige.css │ │ │ ├── black.css │ │ │ ├── blood.css │ │ │ ├── league.css │ │ │ ├── moon.css │ │ │ ├── night.css │ │ │ ├── serif.css │ │ │ ├── simple.css │ │ │ ├── sky.css │ │ │ ├── solarized.css │ │ │ ├── source/ │ │ │ │ ├── beige.scss │ │ │ │ ├── black.scss │ │ │ │ ├── blood.scss │ │ │ │ ├── league.scss │ │ │ │ ├── moon.scss │ │ │ │ ├── night.scss │ │ │ │ ├── serif.scss │ │ │ │ ├── simple.scss │ │ │ │ ├── sky.scss │ │ │ │ ├── solarized.scss │ │ │ │ └── white.scss │ │ │ ├── template/ │ │ │ │ ├── mixins.scss │ │ │ │ ├── settings.scss │ │ │ │ └── theme.scss │ │ │ └── white.css │ │ ├── example/ │ │ │ ├── ctor1.cpp │ │ │ ├── ctor2.cpp │ │ │ ├── ctor3.cpp │ │ │ ├── ctor4.cpp │ │ │ ├── resolve.cpp │ │ │ └── typename_erasure.cpp │ │ ├── index.html │ │ ├── js/ │ │ │ └── reveal.js │ │ ├── lib/ │ │ │ ├── css/ │ │ │ │ └── zenburn.css │ │ │ ├── font/ │ │ │ │ ├── league-gothic/ │ │ │ │ │ ├── LICENSE │ │ │ │ │ └── league-gothic.css │ │ │ │ └── source-sans-pro/ │ │ │ │ ├── LICENSE │ │ │ │ └── source-sans-pro.css │ │ │ └── js/ │ │ │ ├── classList.js │ │ │ └── html5shiv.js │ │ ├── package.json │ │ ├── plugin/ │ │ │ ├── highlight/ │ │ │ │ └── highlight.js │ │ │ ├── markdown/ │ │ │ │ ├── example.html │ │ │ │ ├── example.md │ │ │ │ ├── markdown.js │ │ │ │ └── marked.js │ │ │ ├── math/ │ │ │ │ └── math.js │ │ │ ├── multiplex/ │ │ │ │ ├── client.js │ │ │ │ ├── index.js │ │ │ │ └── master.js │ │ │ ├── notes/ │ │ │ │ ├── notes.html │ │ │ │ └── notes.js │ │ │ ├── notes-server/ │ │ │ │ ├── client.js │ │ │ │ ├── index.js │ │ │ │ └── notes.html │ │ │ ├── print-pdf/ │ │ │ │ └── print-pdf.js │ │ │ ├── search/ │ │ │ │ └── search.js │ │ │ └── zoom-js/ │ │ │ └── zoom.js │ │ └── test/ │ │ ├── examples/ │ │ │ ├── barebones.html │ │ │ ├── embedded-media.html │ │ │ ├── math.html │ │ │ ├── slide-backgrounds.html │ │ │ └── slide-transitions.html │ │ ├── qunit-1.12.0.css │ │ ├── qunit-1.12.0.js │ │ ├── test-markdown-element-attributes.html │ │ ├── test-markdown-element-attributes.js │ │ ├── test-markdown-slide-attributes.html │ │ ├── test-markdown-slide-attributes.js │ │ ├── test-markdown.html │ │ ├── test-markdown.js │ │ ├── test-pdf.html │ │ ├── test-pdf.js │ │ ├── test.html │ │ └── test.js │ ├── cppnow-2017/ │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── CONTRIBUTING.md │ │ ├── Gruntfile.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── css/ │ │ │ ├── print/ │ │ │ │ ├── paper.css │ │ │ │ └── pdf.css │ │ │ ├── reveal.css │ │ │ ├── reveal.scss │ │ │ └── theme/ │ │ │ ├── README.md │ │ │ ├── beige.css │ │ │ ├── black.css │ │ │ ├── blood.css │ │ │ ├── league.css │ │ │ ├── moon.css │ │ │ ├── night.css │ │ │ ├── serif.css │ │ │ ├── simple.css │ │ │ ├── sky.css │ │ │ ├── solarized.css │ │ │ ├── source/ │ │ │ │ ├── beige.scss │ │ │ │ ├── black.scss │ │ │ │ ├── blood.scss │ │ │ │ ├── league.scss │ │ │ │ ├── moon.scss │ │ │ │ ├── night.scss │ │ │ │ ├── serif.scss │ │ │ │ ├── simple.scss │ │ │ │ ├── sky.scss │ │ │ │ ├── solarized.scss │ │ │ │ └── white.scss │ │ │ ├── template/ │ │ │ │ ├── mixins.scss │ │ │ │ ├── settings.scss │ │ │ │ └── theme.scss │ │ │ └── white.css │ │ ├── example/ │ │ │ ├── god_object.cpp │ │ │ ├── static_polymorphism.cpp │ │ │ └── type_erasure.cpp │ │ ├── index.html │ │ ├── js/ │ │ │ └── reveal.js │ │ ├── lib/ │ │ │ ├── css/ │ │ │ │ └── zenburn.css │ │ │ ├── font/ │ │ │ │ ├── league-gothic/ │ │ │ │ │ ├── LICENSE │ │ │ │ │ └── league-gothic.css │ │ │ │ └── source-sans-pro/ │ │ │ │ ├── LICENSE │ │ │ │ └── source-sans-pro.css │ │ │ └── js/ │ │ │ ├── classList.js │ │ │ └── html5shiv.js │ │ ├── package.json │ │ ├── plugin/ │ │ │ ├── highlight/ │ │ │ │ └── highlight.js │ │ │ ├── markdown/ │ │ │ │ ├── example.html │ │ │ │ ├── example.md │ │ │ │ ├── markdown.js │ │ │ │ └── marked.js │ │ │ ├── math/ │ │ │ │ └── math.js │ │ │ ├── multiplex/ │ │ │ │ ├── client.js │ │ │ │ ├── index.js │ │ │ │ └── master.js │ │ │ ├── notes/ │ │ │ │ ├── notes.html │ │ │ │ └── notes.js │ │ │ ├── notes-server/ │ │ │ │ ├── client.js │ │ │ │ ├── index.js │ │ │ │ └── notes.html │ │ │ ├── print-pdf/ │ │ │ │ └── print-pdf.js │ │ │ ├── search/ │ │ │ │ └── search.js │ │ │ └── zoom-js/ │ │ │ └── zoom.js │ │ ├── test/ │ │ │ ├── examples/ │ │ │ │ ├── barebones.html │ │ │ │ ├── embedded-media.html │ │ │ │ ├── math.html │ │ │ │ ├── slide-backgrounds.html │ │ │ │ └── slide-transitions.html │ │ │ ├── qunit-1.12.0.css │ │ │ ├── qunit-1.12.0.js │ │ │ ├── test-markdown-element-attributes.html │ │ │ ├── test-markdown-element-attributes.js │ │ │ ├── test-markdown-slide-attributes.html │ │ │ ├── test-markdown-slide-attributes.js │ │ │ ├── test-markdown.html │ │ │ ├── test-markdown.js │ │ │ ├── test-pdf.html │ │ │ ├── test-pdf.js │ │ │ ├── test.html │ │ │ └── test.js │ │ └── uml/ │ │ ├── app0.uml │ │ ├── app1.uml │ │ ├── app2.uml │ │ ├── app3.uml │ │ ├── app4.uml │ │ └── guideline.uml │ ├── examples.md │ ├── extensions.md │ ├── index.md │ ├── meetingcpp-2016/ │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── CONTRIBUTING.md │ │ ├── Gruntfile.js │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bower.json │ │ ├── css/ │ │ │ ├── print/ │ │ │ │ ├── paper.css │ │ │ │ └── pdf.css │ │ │ ├── reveal.css │ │ │ ├── reveal.scss │ │ │ └── theme/ │ │ │ ├── README.md │ │ │ ├── beige.css │ │ │ ├── black.css │ │ │ ├── blood.css │ │ │ ├── league.css │ │ │ ├── moon.css │ │ │ ├── night.css │ │ │ ├── serif.css │ │ │ ├── simple.css │ │ │ ├── sky.css │ │ │ ├── solarized.css │ │ │ ├── source/ │ │ │ │ ├── beige.scss │ │ │ │ ├── black.scss │ │ │ │ ├── blood.scss │ │ │ │ ├── league.scss │ │ │ │ ├── moon.scss │ │ │ │ ├── night.scss │ │ │ │ ├── serif.scss │ │ │ │ ├── simple.scss │ │ │ │ ├── sky.scss │ │ │ │ ├── solarized.scss │ │ │ │ └── white.scss │ │ │ ├── template/ │ │ │ │ ├── mixins.scss │ │ │ │ ├── settings.scss │ │ │ │ └── theme.scss │ │ │ └── white.css │ │ ├── index.html │ │ ├── js/ │ │ │ └── reveal.js │ │ ├── lib/ │ │ │ ├── css/ │ │ │ │ └── zenburn.css │ │ │ ├── font/ │ │ │ │ ├── league-gothic/ │ │ │ │ │ ├── LICENSE │ │ │ │ │ └── league-gothic.css │ │ │ │ └── source-sans-pro/ │ │ │ │ ├── LICENSE │ │ │ │ └── source-sans-pro.css │ │ │ └── js/ │ │ │ ├── classList.js │ │ │ └── html5shiv.js │ │ ├── package.json │ │ ├── plugin/ │ │ │ ├── highlight/ │ │ │ │ └── highlight.js │ │ │ ├── markdown/ │ │ │ │ ├── example.html │ │ │ │ ├── example.md │ │ │ │ ├── markdown.js │ │ │ │ └── marked.js │ │ │ ├── math/ │ │ │ │ └── math.js │ │ │ ├── multiplex/ │ │ │ │ ├── client.js │ │ │ │ ├── index.js │ │ │ │ └── master.js │ │ │ ├── notes/ │ │ │ │ ├── notes.html │ │ │ │ └── notes.js │ │ │ ├── notes-server/ │ │ │ │ ├── client.js │ │ │ │ ├── index.js │ │ │ │ └── notes.html │ │ │ ├── print-pdf/ │ │ │ │ └── print-pdf.js │ │ │ ├── search/ │ │ │ │ └── search.js │ │ │ └── zoom-js/ │ │ │ └── zoom.js │ │ ├── test/ │ │ │ ├── examples/ │ │ │ │ ├── barebones.html │ │ │ │ ├── embedded-media.html │ │ │ │ ├── math.html │ │ │ │ ├── slide-backgrounds.html │ │ │ │ └── slide-transitions.html │ │ │ ├── qunit-1.12.0.css │ │ │ ├── qunit-1.12.0.js │ │ │ ├── test-markdown-element-attributes.html │ │ │ ├── test-markdown-element-attributes.js │ │ │ ├── test-markdown-slide-attributes.html │ │ │ ├── test-markdown-slide-attributes.js │ │ │ ├── test-markdown.html │ │ │ ├── test-markdown.js │ │ │ ├── test-pdf.html │ │ │ ├── test-pdf.js │ │ │ ├── test.html │ │ │ └── test.js │ │ └── uml/ │ │ └── game.uml │ ├── mkdocs.yml │ ├── overview.md │ ├── scripts/ │ │ └── update_readme_toc.py │ ├── themes/ │ │ ├── boost-classic/ │ │ │ ├── README.md │ │ │ ├── base.html │ │ │ ├── css/ │ │ │ │ ├── boostbook.css │ │ │ │ └── github.css │ │ │ ├── js/ │ │ │ │ └── highlight.pack.js │ │ │ ├── nav.html │ │ │ ├── scripts/ │ │ │ │ └── update_markdown.py │ │ │ └── toc.html │ │ └── boost-experimental/ │ │ ├── base.html │ │ ├── breadcrumbs.html │ │ ├── css/ │ │ │ ├── codemirror.css │ │ │ ├── highlight.css │ │ │ ├── mdn-like.css │ │ │ ├── theme.css │ │ │ └── theme_extra.css │ │ ├── footer.html │ │ ├── js/ │ │ │ ├── codemirror/ │ │ │ │ ├── active-line.js │ │ │ │ ├── clike.js │ │ │ │ └── codemirror.js │ │ │ ├── cpp.js │ │ │ ├── gitter.js │ │ │ ├── highlight.pack.js │ │ │ ├── theme.js │ │ │ └── utility.js │ │ ├── license/ │ │ │ └── highlight.js/ │ │ │ └── LICENSE │ │ ├── search.html │ │ ├── searchbox.html │ │ ├── toc.html │ │ └── versions.html │ ├── try_it.md │ ├── tutorial.md │ ├── uml/ │ │ ├── coffee_maker.uml │ │ └── di.uml │ └── user_guide.md ├── example/ │ ├── CMakeLists.txt │ ├── Jamfile.v2 │ ├── annotations.cpp │ ├── automatic_injection.cpp │ ├── bind_non_owning_ptr.cpp │ ├── bindings.cpp │ ├── configuration.cpp │ ├── constructor_injection.cpp │ ├── constructor_signature.cpp │ ├── custom_policy.cpp │ ├── custom_provider.cpp │ ├── custom_scope.cpp │ ├── deduce_scope.cpp │ ├── dynamic_bindings.cpp │ ├── eager_singletons.cpp │ ├── errors/ │ │ ├── boundable_type_has_disallowed_qualifiers.cpp │ │ ├── boundable_type_is_abstract.cpp │ │ ├── boundable_type_is_bound_more_than_once.cpp │ │ ├── boundable_type_is_neither_a_dependency_nor_an_injector.cpp │ │ ├── boundable_type_is_not_related_to.cpp │ │ ├── callable_requires_call_operator.cpp │ │ ├── configurable_requires_callable_and_providable.cpp │ │ ├── constructible_must_be_bound.cpp │ │ ├── creatable_abstract_type_is_not_bound.cpp │ │ ├── creatable_expose_abstract_type_is_not_bound.cpp │ │ ├── creatable_instance_is_not_convertible_to.cpp │ │ ├── creatable_scoped_is_not_convertible_to.cpp │ │ ├── creatable_type_has_ambiguous_number_of_constructor_parameters.cpp │ │ ├── creatable_type_has_to_many_constructor_parameters.cpp │ │ ├── providable_requires_get.cpp │ │ └── scopable_requires_create.cpp │ ├── example.cpp │ ├── fwd_bindings.cpp │ ├── modules/ │ │ ├── common.hpp │ │ ├── config.hpp │ │ ├── controller.cpp │ │ ├── controller.hpp │ │ ├── main.cpp │ │ ├── model.cpp │ │ ├── model.hpp │ │ ├── module_model.cpp │ │ ├── module_model.hpp │ │ ├── module_view.cpp │ │ ├── module_view.hpp │ │ ├── view.cpp │ │ └── view.hpp │ ├── modules.cpp │ ├── motivation.cpp │ ├── multiple_bindings.cpp │ ├── multiple_interfaces.cpp │ ├── performance/ │ │ ├── create_bound_interface.cpp │ │ ├── create_bound_interface_via_exposed_module.cpp │ │ ├── create_bound_interface_via_module.cpp │ │ ├── create_named_type.cpp │ │ ├── create_type_with_bound_instance.cpp │ │ └── create_type_without_bindings.cpp │ ├── pool_provider.cpp │ ├── scopes.cpp │ ├── try_it.cpp │ ├── tutorial/ │ │ ├── basic_annotations_to_the_rescue.cpp │ │ ├── basic_create_objects_tree.cpp │ │ ├── basic_decide_the_life_times.cpp │ │ ├── basic_first_steps_with_bindings.cpp │ │ ├── basic_first_steps_with_bindings_override.cpp │ │ ├── basic_first_steps_with_dynamic_bindings.cpp │ │ ├── basic_first_steps_with_multiple_bindings.cpp │ │ ├── basic_first_steps_with_template_bindings.cpp │ │ ├── basic_split_your_configuration.cpp │ │ └── basic_split_your_configuration_expose.cpp │ └── user_guide/ │ ├── annotated_constructor_injection.cpp │ ├── annotated_constructor_injection_with_constructor_definition.cpp │ ├── annotated_constructor_injection_with_ctor_traits.cpp │ ├── annotated_constructor_injection_with_the_same_names.cpp │ ├── bind_cross_platform.cpp │ ├── bind_deduce_type_to_value.cpp │ ├── bind_dynamic_bindings.cpp │ ├── bind_interface_to_implementation.cpp │ ├── bind_multiple_bindings.cpp │ ├── bind_multiple_bindings_initializer_list.cpp │ ├── bind_multiple_interfaces.cpp │ ├── bind_type_override.cpp │ ├── bind_type_to_compile_time_value.cpp │ ├── bind_type_to_value.cpp │ ├── constructor_injection_aggregate.cpp │ ├── constructor_injection_ambiguous_constructors_via_BOOST_DI_INJECT.cpp │ ├── constructor_injection_ambiguous_constructors_via_BOOST_DI_INJECT_TRAITS.cpp │ ├── constructor_injection_ambiguous_constructors_via_ctor_traits.cpp │ ├── constructor_injection_ambiguous_constructors_via_inject.cpp │ ├── constructor_injection_ambiguous_constructors_via_vaargs.cpp │ ├── constructor_injection_default_values.cpp │ ├── constructor_injection_direct.cpp │ ├── constructor_injection_long_parameter_list.cpp │ ├── constructor_injection_multiple_constructors.cpp │ ├── injector_empty.cpp │ ├── module.cpp │ ├── module_exposed_annotated_type.cpp │ ├── module_exposed_complex_types.cpp │ ├── module_exposed_many_types.cpp │ ├── module_exposed_type.cpp │ ├── policies_constructible_global.cpp │ ├── policies_constructible_local.cpp │ ├── policies_print_type_extended.cpp │ ├── policies_print_types.cpp │ ├── providers_heap.cpp │ ├── providers_heap_no_throw.cpp │ ├── providers_stack_over_heap.cpp │ ├── scopes_custom.cpp │ ├── scopes_deduce_default.cpp │ ├── scopes_instance.cpp │ ├── scopes_singleton.cpp │ └── scopes_unique.cpp ├── extension/ │ ├── CMakeLists.txt │ ├── Jamfile.v2 │ ├── bindings/ │ │ ├── constructor_bindings.cpp │ │ └── contextual_bindings.cpp │ ├── injections/ │ │ ├── assisted_injection.cpp │ │ ├── concepts.cpp │ │ ├── factory.cpp │ │ ├── generics.cpp │ │ ├── lazy.cpp │ │ ├── named_parameters.cpp │ │ └── xml_injection.cpp │ ├── policies/ │ │ ├── serialize.cpp │ │ ├── types_dumper.cpp │ │ └── uml_dumper.cpp │ ├── providers/ │ │ └── mocks_provider.cpp │ └── scopes/ │ ├── scoped_scope.cpp │ ├── session_scope.cpp │ └── shared_scope.cpp ├── include/ │ └── boost/ │ ├── di/ │ │ ├── aux_/ │ │ │ ├── compiler.hpp │ │ │ ├── preprocessor.hpp │ │ │ ├── type_traits.hpp │ │ │ └── utility.hpp │ │ ├── bindings.hpp │ │ ├── concepts/ │ │ │ ├── boundable.hpp │ │ │ ├── callable.hpp │ │ │ ├── configurable.hpp │ │ │ ├── creatable.hpp │ │ │ ├── providable.hpp │ │ │ └── scopable.hpp │ │ ├── config.hpp │ │ ├── core/ │ │ │ ├── any_type.hpp │ │ │ ├── array.hpp │ │ │ ├── binder.hpp │ │ │ ├── bindings.hpp │ │ │ ├── dependency.hpp │ │ │ ├── injector.hpp │ │ │ ├── policy.hpp │ │ │ ├── pool.hpp │ │ │ ├── provider.hpp │ │ │ └── wrapper.hpp │ │ ├── fwd.hpp │ │ ├── fwd_ext.hpp │ │ ├── inject.hpp │ │ ├── injector.hpp │ │ ├── make_injector.hpp │ │ ├── policies/ │ │ │ └── constructible.hpp │ │ ├── providers/ │ │ │ ├── heap.hpp │ │ │ └── stack_over_heap.hpp │ │ ├── scopes/ │ │ │ ├── deduce.hpp │ │ │ ├── instance.hpp │ │ │ ├── singleton.hpp │ │ │ └── unique.hpp │ │ ├── type_traits/ │ │ │ ├── ctor_traits.hpp │ │ │ ├── memory_traits.hpp │ │ │ ├── named_traits.hpp │ │ │ ├── rebind_traits.hpp │ │ │ └── scope_traits.hpp │ │ └── wrappers/ │ │ ├── shared.hpp │ │ └── unique.hpp │ └── di.hpp ├── meta/ │ └── libraries.json ├── test/ │ ├── CMakeLists.txt │ ├── Jamfile.v2 │ ├── common/ │ │ ├── common.hpp │ │ ├── fakes/ │ │ │ ├── fake_config.hpp │ │ │ ├── fake_dependency.hpp │ │ │ ├── fake_injector.hpp │ │ │ ├── fake_policy.hpp │ │ │ ├── fake_pool.hpp │ │ │ ├── fake_provider.hpp │ │ │ ├── fake_scope.hpp │ │ │ └── fake_wrapper.hpp │ │ ├── test.hpp │ │ └── utils.hpp │ ├── ft/ │ │ ├── di_bind.cpp │ │ ├── di_config.cpp │ │ ├── di_config_global_policies.cpp │ │ ├── di_config_global_provider.cpp │ │ ├── di_errors.cpp │ │ ├── di_inject.cpp │ │ ├── di_injector.cpp │ │ ├── di_injector_except.cpp │ │ ├── di_module_1.cpp │ │ ├── di_module_2.cpp │ │ ├── di_module_3.cpp │ │ ├── di_no_memory_inc.cpp │ │ └── di_no_std_inc.cpp │ ├── pt/ │ │ ├── di_compile_time.cpp │ │ └── di_run_time.cpp │ └── ut/ │ ├── aux_/ │ │ ├── preprocessor.cpp │ │ ├── type_traits.cpp │ │ └── utility.cpp │ ├── bindings.cpp │ ├── concepts/ │ │ ├── boundable.cpp │ │ ├── callable.cpp │ │ ├── configurable.cpp │ │ ├── creatable.cpp │ │ ├── providable.cpp │ │ └── scopable.cpp │ ├── config.cpp │ ├── core/ │ │ ├── any_type.cpp │ │ ├── array.cpp │ │ ├── binder.cpp │ │ ├── bindings.cpp │ │ ├── dependency.cpp │ │ ├── injector.cpp │ │ ├── policy.cpp │ │ ├── pool.cpp │ │ ├── provider.cpp │ │ └── wrapper.cpp │ ├── inject.cpp │ ├── injector.cpp │ ├── make_injector.cpp │ ├── policies/ │ │ └── constructible.cpp │ ├── providers/ │ │ ├── heap.cpp │ │ └── stack_over_heap.cpp │ ├── scopes/ │ │ ├── deduce.cpp │ │ ├── instance.cpp │ │ ├── singleton.cpp │ │ └── unique.cpp │ ├── type_traits/ │ │ ├── ctor_traits.cpp │ │ ├── memory_traits.cpp │ │ ├── named_traits.cpp │ │ ├── rebind_traits.cpp │ │ └── scope_traits.cpp │ └── wrappers/ │ ├── shared.cpp │ └── unique.cpp └── tools/ └── pph.sh