template<typename... TA>
struct AAA
{
template<typename TB>
struct BBB : AAA<TA..., SomeClass<TB>>
{}
};
我看过上面的代码,但很难理解代码背后的理论。
问题 1> 是否有一个特定的概念来描述这种模式的用法? 有什么引用资料可以引用吗?
问题2>为什么struct 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 的任何实例化。
关于c++ - 内嵌类继承外层类为什么没有死循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46004166/