Skip to content

ybainier/Hypodermic

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

* The issue was located in RegistrationScope::copy() which used to ignore already activated instances i.e. skip what the parent container resolved and never let know the nested ones
a9e1b5b

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Hypodermic

MIT license Build status Build Status

Hypodermic is a non-intrusive header only IoC container for C++. It provides dependency injection to your existing design by managing the creation of your components and their dependencies in the right order, sparing you the trouble of writing and maintaining boiler plate code.

Used in production environments since 2012.

First steps

Configure the container by registering your components

ContainerBuilder builder;

builder.registerType< MessageDispatcher >();

auto container = builder.build();

... then ask the container to give you an instance of that type

auto dispatcher = container->resolve< MessageDispatcher >();

Want to discover what happened here? Learn to use more features through the beginner's guide on the wiki.

Benchmarks

Some comparative benchmarks are available on the wiki, check them out.

Acknowledgment

Hypodermic was started with the will to mimic the famous .NET Autofac http://autofac.org/. Although its design evolved, both its behavior and its expressiveness tend to remain the same.

Constructor deduction has been made possible thanks to the work of Krzysztof Jusiak in http://boost-experimental.github.io/di/.

About

Hypodermic is an IoC container for C++. It provides dependency injection to your existing design.

Resources

License

Stars

Watchers

Forks

Packages

No packages published