鉴于此模板:
template <class A>
struct Something {
... // members common to all template instantiations for all A types
SpecialType member; // but not this - I want this to be conditional...
}
...我想使用“enable_if”让 SpecialType 成员有条件地存在;也就是说,仅当模板使用 A=SpecialCase1 或 SpecialCase2 类型实例化时。在所有其他情况下,我希望 SpecialType 成员丢失。
如果您想知道为什么,这是关于优化 - 即不在结构中携带无用的有效负载。我是模板元编程的新手,但我知道我需要“enable_if”和两个“is_same”——虽然不知道具体如何......
编辑:使用通用 C++(即没有 Boost-specifics)将是一个加号。