别名模板不像 class 模板那样工作

Alias template doesn't work like class template

我正在从 C++ Primer 第 5 版学习 C++ 模板。例如,我了解到我们可以执行以下操作:

template<typename T>
struct Custom 
{
    
};

template<>
struct Custom<int> 
{
  int a = 0;  
};

然后我才知道C++11还增加了别名模板的特性。所以我对它们进行了相同的尝试,如下所示:

template<typename T>
using var = std::stack<T>;

template<>
using var<double> = double;

但上面显示的片段 doesn't work。这里有什么问题,为什么第二个片段不起作用。

问题是我们无法专门化别名模板

来自temp.decls 17.5.3

Because an alias-declaration cannot declare a template-id, it is not possible to partially or explicitly specialize an alias template.