Supposons que j'ai quelque chose comme ceci:sizeof (...) = 0 ou déclaration variable conditionnelle en C++ modèles
struct EmptyClass{};
template<typename T1, typename T2 = EmptyClass,
typename T3 = EmptyClass, typename T4 = EmptyClass,
..., typename T20> class PoorMansTuple {
T1 t1;
T2 t2;
...
T20 t20;
};
Maintenant, je peux perdre jusqu'à 19bytes par PoorMansTuple.
Question est:
1) Est-il possible de créer une classe de taille 0?
2) Existe-t-il un moyen de définir de manière conditionnelle une varaible? Somethign aiment:
T1 t1;
if (T2 != EmptyClass) T2 t2; // pseudo code
if (T3 != EmptyClass) T3 t3; // ...
Merci!
L'utilisation de macros magiques noires est préméditée. J'utilise g ++ sur Mac OS X.
Pouvez-vous sauvegarder un peu et nous dire plus généralement ce que vous essayez de faire? Il se peut qu'il y ait une solution plus simple à votre problème général. –