假设我有这样的事情:
struct EmptyClass{};
template<typename T1, typename T2 = EmptyClass,
typename T3 = EmptyClass, typename T4 = EmptyClass,
..., typename T20> class PoorMansTuple {
T1 t1;
T2 t2;
...
T20 t20;
};
现在,每个PoorMansTuple 我可能会浪费多达19 个字节。
问题是:
1)有没有办法创建一个大小为 0 的类?
2)有没有办法有条件地定义一个变量?像这样的东西:
T1 t1;
if (T2 != EmptyClass) T2 t2; // pseudo code
if (T3 != EmptyClass) T3 t3; // ...
谢谢!
预先使用黑魔法宏。
我在 MacOSX 上使用 g++。