Недавно обсуждалось сдесь, я предложил метод который на основе списка типов генерирует во время компиляции тип, объекты которого могут выполнять такую диспетчеризацию (диспетчеризация проходит в длинной последовательности
if -else
), у такого подхода есть определенные преимущества, например, то что такой диспетчер обладает семантикой объекта.
использование
class Funct1
{
public:
void operator()()
{
std::cout<<"Func1"<<std::endl;
}
};
class Funct2
{
public:
void operator()()
{
std::cout<<"Func2"<<std::endl;
}
};
class Funct3
{
public:
void operator()()
{
std::cout<<"Func3"<<std::endl;
}
};
int main(int argc, char* argv[])
{
Switcher<TypeList<MsgFuncPair<1,Funct1>,TypeList<MsgFuncPair<3,Funct3>,NullType> > > swit;
swit.DoThis(1);
swit.DoThis(2);
swit.DoThis(3);
return 0;
}
Вывод:
Func1
Not found!
Func3
Звучит это всё немного наивно...Зачем вам для создания открытой платформы набирать команду людей и называть это стартапом (ближайшие 5 лет, я так понимаю, это не будет приносить никаких денег)? Гораздо логичнее (ИМХО) создать Open Source проект на каком-то sourceforge, и начать самому что-то делать. Если это действительно будет что-то стоящее то подтянутся знающие люди... да и те (они безусловно тоже могут быть знающими) которые сейчас полны энтузиазма смогут вносить свой вклад. В общем мне кажется вы не правильно позиционируюте эту идею.