J'essaie d'implémenter une métafonction (?) Dans des modèles variés pour calculer le maximum de sizeof
de quelques types au moment de la compilation.Taille maximale de la métafonction dans les modèles variadiques
template<typename... Ts> struct MaxSizeof {
static constexpr size_t value = 0;
};
template<typename T, typename... Ts> struct MaxSizeof {
static constexpr size_t value = std::max(sizeof(T), typename MaxSizeof<Ts...>::value);
};
Mais je reçois quelques erreurs étranges:
MaxSizeof.h(7): error C3855: 'MaxSizeof': template parameter 'Ts' is incompatible with the declaration
MaxSizeof.h(7): error C2977: 'MaxSizeof': too many template arguments
MaxSizeof.h(5): note: see declaration of 'MaxSizeof'
Pouvez-vous aider à fixer mon code?
Le compilateur est le jeu d'outils MSVC++ 2017 v141.
Êtes-vous manque un ** statique ** avant constexpr? – Phil1970
@ Phil1970, merci, j'ai mis à jour le code et les messages d'erreur. –