【发布时间】:2010-02-19 00:14:05
【问题描述】:
假设我有这样的事情:
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++。
【问题讨论】:
-
您能稍微备份一下并更一般地告诉我们您要做什么吗?对于您的一般问题,可能有更简单的解决方案。
标签: c++ templates conditional sizeof