1
试图了解模板和名称查找
我正在尝试了解以下代码片段 片段1 template <typename T> struct A { static constexpr int VB = T::VD; }; struct B : A<B> { }; gcc9和clang9都不会在此处引发错误。 问:为什么要编译此代码?A<B>从B继承时,我们不是实例化吗?B中没有VD,因此编译器不应该在这里抛出错误吗? 片段2 template <typename T> struct A { static constexpr auto AB = T::AD; // <- No member named AD in B }; struct B : A<B> { …