Re[5]: variadic list неспециализированных шаблонов
От: wander  
Дата: 20.09.14 22:48
Оценка: 15 (1)
Здравствуйте, niXman, Вы писали:

X>та нет, что-то не так...


X>вот компилябельный(сильно упрощенный и не раскрывающий идеи) код(вдруг есть желание покопаться ):


Вот что получилось:
template<template<typename, template<typename> class GC> class...>
struct t_invokers;

template<typename...>
struct t_services;

template<typename Invokers, typename Services>
struct type;

template<template <typename, template<typename> class GC> class... Invokers, typename... Services>
struct type<t_invokers<Invokers...>, t_services<Services...>>
{ };

struct invoker_base {};
/***************************************************************************/
template<typename UC, template<typename> class GC>
struct first_invoker : invoker_base
{
    first_invoker(UC &uc, GC<UC> &gc) {}
};

template<typename UC, template<typename> class GC>
struct second_invoker : invoker_base
{
    second_invoker(UC &uc, GC<UC> &gc) {}
};

struct ping_service {};
struct statistic_service {};
/***************************************************************************/

int main()
{
    using _t_invokers = t_invokers<first_invoker, second_invoker>;
/***************************************************************************/
    using _t_services = t_services<ping_service, statistic_service>;
    type<_t_invokers, _t_services> t;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.