В настоящее время я борюсь со следующим кодом, целью которого является реализация вариативных шаблонов вариативных шаблонов:
template
<
template class Head,
template class...
>
struct join, Head...>
{
typedef Head result;
};
В идеале я мог бы чтобы использовать эту метафункцию шаблона для достижения следующего:
template struct obj1 {};
template struct obj2 {};
typedef join
<
obj1,
obj1,
obj1
>::result new_obj1;
typedef join
<
obj2,
obj2,
obj2
>::result new_obj2;
/* This should result in an error, because there are
different encapsulating objects
typedef join
<
obj1,
obj1,
obj2
>::result new_obj;
*/
Выходные данные выше должны создать new_obj1
и new_obj2
в форме template
Я использую gcc 4.6.2 в Windows, который выводит «ожидаемый пакет параметров перед '...'» для расширения « Head
... ".