12

次のように定義されたいくつかのテンプレートクラスがあるとします

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 を使用しています。

4

1 に答える 1