假设我有一些模板类定义如下
template<template<class>class...>
struct my_class;
template<class>
struct define_template{
template<class>
class type;
};
我需要定义一个别名模板,将 define_template::type 替换为 my_class 所以对于三个类我可以这样做
template<class A, class B, class C>
using my_alias = my_class< define_template<A>::template type,
define_template<B>::template type,
define_template<C>::template type>;
我无法为可变参数模板计算出执行此操作的语法,理想情况下是这样的
template<class... T>
using new_class = my_class<define_template<T>::template type...>;
这给了我一个错误“参数包没有用'...'扩展
有人知道正确的语法吗?
从下面的评论来看,它在 clang 中编译,我通过 Cygwin 使用 gcc 4.8.2。