次のように定義されたいくつかのテンプレートクラスがあるとします
template<template<class>class...>
struct my_class;
template<class>
struct define_template{
template<class>
class type;
};
define_template::type を my_class に置き換えるエイリアス テンプレートを定義する必要があるため、3 つのクラスに対してこれを行うことができます。
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 を使用しています。