Existe-t-il un moyen d'obtenir le nombre de champs d'une classe?obtenir le nombre de champs dans une classe
struct Base {
char a;
int b;
};
struct Derived : Base {
std::string c;
};
static_assert(num_fields<Base>::value == 2);
static_assert(num_fields<Derived>::value == 1);
J'ai trouvé this question mais il est très daté - J'espère que quelque chose peut être cousu avec 14/17 C++ (après tout ce que nous avons maintenant quelque chose comme magic_get - peut-être un sous-ensemble de celui-ci .. .?)
EDIT: - un crochet du compilateur fonctionnerait également, même si elle est seulement pour MSVC ou GCC ou Clang - Je l'utilise tous les 3.
Quel est le cas d'utilisation pour cela? Peut-être qu'une solution différente pourrait être trouvée là –
Rien de ce que je sais de cela n'implique de macro kung-fu. Je suggère d'utiliser 'std :: tuple' quand vous avez besoin d'itérer ou de compter les champs. – AMA
C++ ne fonctionne pas comme ça. Fait intéressant, beaucoup de ces questions ont surgi récemment. – kim366