为什么嵌入类别的类别继承了外部类时没有无限循环
why there is no infinite loop when embedded class inherits the outer class
template<typename... TA>
struct AAA
{
template<typename TB>
struct BBB : AAA<TA..., SomeClass<TB>>
{}
};
我已经看到了上述代码,并且很难理解代码背后的理论。
问题1>是否有一个特定概念来描述这种模式的用法?我可以参考吗?
问题2>为什么结构BBB的定义不会引起无限循环?
谢谢
尝试考虑实例化的实际示例。一些情况应该明确:
using Type1 = AAA<>::BBB<int>;
// Type1 baseclass is AAA<SomeClass<int>>
using Type2 = typename Type1::BBB<char>;
// Type2 baseclass is AAA<SomeClass<int>, SomeClass<char>
等。直到您"伸手去拿"并要求另一种实例化之前,没有。例如,直到定义type2之前,任何一组x的type1 :: bbb的任何实例化。
相关文章:
- 过载'operator new'如何导致无限循环?
- C++正则表达式无限循环
- 程序在尝试猜测它选择的随机数时进入无限循环?
- 遍历链表时的无限循环
- 循环链表:无限循环
- 比较两个字符串后卡在无限循环中
- 在做一段时间内检查字符的无限循环
- 逐字读取文本文件中的每一行并转换为 int(无限循环或崩溃?
- 在这个无限循环中,当输入 0 时终止,当输入 int 范围之外的任何内容时,程序行为不正常
- 可能的无限循环
- 超出 int 的值范围后的无限循环
- 为什么这段代码会导致无限循环?
- 运行无限循环的最小二叉树问题
- 在分配和发布递增循环迭代器时C++无限循环(gcc 错误?
- 连接线程时的无限循环
- 为什么这种方法会进入无限循环?
- 由于QTextStream的无限循环
- Qt 在另一个线程中无限循环
- 从文件 C++ 读取时的无限循环
- 试图找出为什么我的代码保持无限循环