O que significa “typename =” nos parâmetros do modelo?
Vi essa expressão na página 189 do livro "Effective Modern C ++":
template<typename T,
typename = typename std::enable_if<condition>::type>
explicit Person(T&& n);
Eu só estou querendo saber o que faz a parte "typename =
"mean. Certamente parece um argumento padrão para um parâmetro de modelo. Mas você não precisa de algo como"typename some_name = ...
"em um argumento padrão? Não há nome para o segundo argumento do modelo e não vejo o segundo argumento do modelo sendo usado neste caso.
P.S. Quando procuro uma resposta no google (ou em qualquer outro mecanismo de pesquisa), o sinal de igual é sempre descartado, e isso apenas torna quase impossível encontrar uma resposta ...