Учитывая этот шаблон:
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" - хотя не уверен, как именно...
РЕДАКТИРОВАТЬ: Выполнение этого с помощью общего С++ (т.е. без специфики Boost) было бы плюсом.