ho visto questa espressione nella pagina 189 del libro "Effective C++ moderna":Che cosa significa "typename =" nei parametri del template?
template<typename T,
typename = typename std::enable_if<condition>::type>
explicit Person(T&& n);
Mi chiedo solo quello che fa la parte "typename =
" significare. Sembra certamente un argomento predefinito per un parametro del modello. Ma non ti serve qualcosa come "typename some_name = ...
" in un argomento predefinito? Non esiste un nome per il secondo argomento del modello e in questo caso non vedo il secondo argomento del modello utilizzato.
P.S. Quando eseguo una ricerca su google (o qualsiasi altro motore di ricerca) per una risposta, il segno di uguale viene sempre scartato, e ciò rende semplicemente impossibile trovare una risposta ...
Grazie mille. Non sapevo che ci possano essere parametri modello senza nome. Ora tutto ha un senso. – qft
Per chiarire questa frase: 'creerà un errore del compilatore se la condizione non è soddisfatta': è corretto dire che questo attiva SFINAE (" Errore di sostituzione non è un errore ") e il costruttore non è definito? (Sono un po 'nuovo a SFINAE.) – kevinarpe