Why does this code work:
template< typename T, std::enable_if_t::value, T>* = nullptr> void Add(T) {} templa
I think the problem is the fact that you can use a function even if a default template parameter does not compile by specifying a different value for it. Think of what would happen if you specified two template parameters in a call to add.