template<size_t bits_count, typename = void>
struct best_type {
};
template<size_t bits_count>
struct best_type<bits_count,enable_if_t<bits_count > 8>> { // error: template argument 2 is invalid
typedef byte type;
};
L'erreur est due à l'analyseur voit le deuxième argument de modèle comme enable_if_t<bits_count >
suivant un 8
aléatoire.Comment cette condition peut-elle être mise en spécialisation partielle de modèle?
Évidemment la solution à ceci peut remplacer l'argument de enable_if_t
à bits_count >= 9
, mais peut-on faire quelque chose pour préserver l'expression originale ainsi elle aura du sens aux futurs lecteurs?
'void' est clair. Nommer le paramètre 'Enabler' ou' AlwaysVoid' rendrait le motif plus clair. – Jarod42