binder::resolve behavior inquiry
xilef opened this issue · 0 comments
xilef commented
I am tracing the injector.create function until I reach this point in the code
auto create_successful_impl__() const {
auto&& dependency = binder::resolve<T, TName>((injector*)this);
How does resolve get TDefault even though it was not specified in the call?
template <class T, class TName = no_name, class TDefault = dependency<scopes::deduce, aux::decay_t<T>>, class TDeps>
static decltype(auto) resolve(TDeps* deps) noexcept {
using dependency = dependency_concept<aux::decay_t<T>, TName>;
I am testing with a simple class with a simple call to create
class SingleClass {
public:
SingleClass()
{
}
~SingleClass()
{
}
};
...
auto injector2 = di::make_injector();
SingleClass test = injector2.create < SingleClass>();
I am seeing TDefault has a proper dependency
boost::ext::di::v1_2_0::core::dependency<
boost::ext::di::v1_2_0::scopes::deduce,
SingleClass,
SingleClass,
boost::ext::di::v1_2_0::no_name,
void,
boost::ext::di::v1_2_0::core::none>
Where did TDefault come from?