Core Classes

The library relies on two core classes:

  • ServiceCollection: class is responsible for registering services and building service provider

  • ServiceProvider: class is responsible for delivering real services and managing its lifetime

Examples/Guides/Basic
#include <SevenBit/DI.hpp>

using namespace sb::di;

struct ServiceA
{
};
struct ServiceB
{
};
struct ServiceC
{
};

int main()
{
    // Service registration
    ServiceCollection services;
    services.addSingleton<ServiceA>();
    services.addSingleton<ServiceB>();
    services.addSingleton<ServiceC>();

    ServiceProvider provider = services.buildServiceProvider();

    // Accessing services
    auto &serviceA = provider.getService<ServiceA>();
    auto &serviceB = provider.getService<ServiceB>();
    auto &serviceC = provider.getService<ServiceC>();

    return 0;
}