Есть, например, такой шаблон (метода):
template <typename T>
void drawfield(dimension<T>& src, auto func = [](T val){return val;});
main.cpp:98:26: error: no matching function for call to ‘plots_t::drawfield(dimension<float>&)’
plots.drawfield(cmp.ns);
^
main.cpp:98:26: note: candidate is:
In file included from main.cpp:31:0:
plots.hpp:25:7: note: template<class T, class auto:1> void plots_t::drawfield(dimension<T>&, auto:1)
void drawfield(dimension<T>& src, auto func = [](T val){return val;});
^
plots.hpp:25:7: note: template argument deduction/substitution failed:
main.cpp:98:26: note: couldn't deduce template parameter ‘auto:1’
template <typename T, typename F>
void drawfield(dimension<T>& src, function<T(F)> func = [](T val){return val;});
template <typename T, typename F>
void drawfield(dimension<T>& src, F func = [](T val){return val;});