如何使Clang改变两阶段查找的规则?

时间:2019-06-06 10:17:05

标签: c++ clang clang++

我希望它可以编译而不会出现错误。只希望它等到实例化

template<class T>
struct A : public T{
   void f(){ foo(); }
};

int main() {}

2 个答案:

答案 0 :(得分:3)

您可以将代码更改为:

template<class T>
struct A : public T{
   void f(){ this->foo(); } // or T::foo();
};

int main() {}

使foo类型依赖于您的代码。

答案 1 :(得分:1)

两阶段查找规则由c ++标准和/或由编译器定义。 无法更改规则,就像您不能更改法律一样。您需要告诉我们真正的问题是什么。