Я видел это выражение на странице 189 книги "Effective Modern C++":
template<typename T,
typename = typename std::enable_if<condition>::type>
explicit Person(T&& n);
Мне просто интересно, что означает часть "typename =
". Это определенно выглядит как аргумент по умолчанию для параметра шаблона. Но разве вам не нужно что-то вроде «typename some_name = ...
» в аргументе по умолчанию? У второго аргумента шаблона нет имени, и я не вижу, чтобы второй аргумент шаблона использовался в этом случае.
P.S. Когда я ищу ответ в Google (или любой другой поисковой системе), знак равенства всегда отбрасывается, и это просто делает поиск ответа практически невозможным...