例如,单链表节点可能定义如下
namespace example_part1
{
class node
{
node * next;
int value;
}
}
假设我们只有一个整数列表。此类允许有一个指向其自身类型的成员,因为无论底层数据结构的大小如何,指针都具有相同的大小。
现在,为什么我不被允许这样做
namespace example_part2
{
using node = std::pair<example_part2::node *, int>;
}
?
我知道这看起来是一个愚蠢的例子,但我想更多地了解它无法编译的原因。我实际上遇到了与此类似的情况,它可能有用(不适用于 std::pair)。另外,假设这两个代码段来自不同的程序,即我没有节点自定义类以及同一程序中别名为节点的对。
请注意,在类型别名 http://en.cppreference.com/w/cpp/language/type_alias
[type-id 是]抽象声明符或任何其他有效的 type-id(可能会引入
新类型,如 type-id 中所述)。 type-id 不能直接或
间接引用标识符。
本质上,别名可能不是递归的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)