lintel 0.2.0
Loading...
Searching...
No Matches
Classes | Typedefs | Functions | Variables
lintel::di::detail Namespace Reference

Classes

struct  ActivationScope
 
struct  ArgumentResolver
 
struct  ArgumentResolver< std::shared_ptr< TDependency > >
 
struct  ArgumentResolver< std::vector< std::shared_ptr< TDependency > > >
 
struct  InjectorArgument
 
struct  IsSupportedArgument
 
struct  IsSupportedArgument< std::shared_ptr< T > >
 
struct  IsSupportedArgument< std::vector< std::shared_ptr< T > > >
 

Typedefs

template<typename T , std::size_t >
using InjectorFor = InjectorArgument< T >
 

Functions

template<typename T , std::size_t... Indices>
constexpr bool isInjectableWith (std::index_sequence< Indices... >)
 
template<typename T , std::size_t N>
constexpr bool isInjectableWith ()
 
template<typename T , std::size_t N>
constexpr std::size_t constructorArity ()
 
template<typename T >
constexpr bool hasInjectableConstructor ()
 
template<typename T , std::size_t... Indices>
std::shared_ptr< T > createWithInjectors (Container &container, std::index_sequence< Indices... >)
 
template<typename T >
std::shared_ptr< T > createInstance (Container &container)
 
std::vector< const void * > & activeRegistrations ()
 

Variables

constexpr std::size_t kMaxConstructorArguments = 20
 

Typedef Documentation

◆ InjectorFor

The injector is repeated once per parameter; the index only distinguishes the pack.

Function Documentation

◆ activeRegistrations()

std::vector< const void * > & lintel::di::detail::activeRegistrations ( )
inline

Registrations currently being activated on this thread - used to break cycles.

◆ constructorArity()

template<typename T , std::size_t N>
constexpr std::size_t lintel::di::detail::constructorArity ( )
constexpr

◆ createInstance()

template<typename T >
std::shared_ptr< T > lintel::di::detail::createInstance ( Container &  container)

◆ createWithInjectors()

template<typename T , std::size_t... Indices>
std::shared_ptr< T > lintel::di::detail::createWithInjectors ( Container &  container,
std::index_sequence< Indices... >   
)

◆ hasInjectableConstructor()

template<typename T >
constexpr bool lintel::di::detail::hasInjectableConstructor ( )
constexpr

True if T can be created by the container: default ctor or injectable parameters.

◆ isInjectableWith() [1/2]

template<typename T , std::size_t N>
constexpr bool lintel::di::detail::isInjectableWith ( )
constexpr

◆ isInjectableWith() [2/2]

template<typename T , std::size_t... Indices>
constexpr bool lintel::di::detail::isInjectableWith ( std::index_sequence< Indices... >  )
constexpr

Variable Documentation

◆ kMaxConstructorArguments

constexpr std::size_t lintel::di::detail::kMaxConstructorArguments = 20
constexpr

Maximum number of constructor parameters that can be injected.