Why can's T be deduced? i.e. why do I get this error?
localpdb_capi.cc: In function ‘int probIterator(lua_State*)’:
localpdb_capi.cc:74: error: no matching function for call to ‘luaK_pushiter(lua_State*&, DB::ProblemIterator, DB::ProblemIterator, void (&)(lua_State*, boost::shared_ptr<DB::ProblemIterator>))’
To put it simple, implicit conversions are not considered during deduction. They are considered during overload resolution, but to get there, the compiler needs to generate the list of overloads first.