Небольшой вопрос по шаблонам
От: Аноним  
Дата: 24.08.09 14:09
Оценка:
Всем добрый день.
Есть следующая структура, самое важное что все наиболее вложенные структуры наследуют от одного типа, что позволяет написать следующий код:

struct BHeader
{
};

struct All
{
   struct Part1
   {
       struct Part1Sub1 : BHeader
       {
       };
       struct Part1Sub2 : BHeader
       {
       };
   };
   struct Part2
   {
       struct Part2Sub1 : BHeader
       {
       };
       struct Part2Sub2 : BHeader
       {
       };
   };
};

class Processor
{
public:
    /// Общий случай
    template <typename T>
    void operator()(T::BHeader*)
    {
    }

    /// Частные случаи
    void operator()(All::Part1::Part1Sub1::BHeader*)
    {
    }
......
};


Но иногда хочется получить еще и средний вариант частного случая, наподобие:


template <typename T>
void operator()(All::Part1::T::BHeader*)
{
}


Подскажите плиз как можно добавить такой функционал.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.