我正在尝试制作类似于书中示例的东西,但它不起作用。
我尝试了不同的选择。和typename Space = int
, 和class Stack<bool, Space = int>
.没有任何帮助。最接近的似乎是:
template <typename T, int Space = 4096>
class Stack
{
};
template <template Space>
class Stack<bool>
{
};
但事实证明,即使你完全做到了,仍然不行。抛出 - E0707 需要模板参数列表,而 E0840 不允许在主模板声明中使用模板参数列表:
template <template T1, template T3>
class Temp <T1, int, T3>
{
};
这可能是一个错字吗?或者我错过了什么?
UPD。我很抱歉没有解释清楚。我会尝试更详细。在此之前,我从小做起。起初我只是简单地写了一个存储元素的Stack类。其大小是固定的。那些。声明了一个私有字段int space = 20。然后添加了一个模板。并调试了一下。查看版本:
template <typename T>
class Stack
{
};
template <>
class Stack<bool>
{
};
可行,但最后一步造成了最大的困难。我不知道如何正确地将另一个参数添加到模板和专业化中。