class A {
class B {
public:
int gwe = 0;
};
array<B, 3> arr;
public:
A() {
arr[0].gwe; // When starting to type 'g', IDE will suggest autocompletion for 'gwe'
}
};
现在,如果您放在上面:
template<typename T>
尝试访问数组元素的成员时,IDE不会自动完成。让它成为Xcode,CLion,我还没有尝试过VS,但我坚信它也可以复制行为。
在将泛型与其他语言(例如C#,Java或Swift)结合使用之前,我还没有经历过。
那么,为什么这必须发生在C++上呢?
最佳答案
正确地解析C++是一个极其复杂且耗时的问题。
如果IDE能够完美地完成它,则将花费与编译应用程序一样多的时间,并且您会因为IDE无响应而感到恼火。
因此,为了做出响应,IDE在有限的时间内进行了有限的解析,这意味着它们并不总是能够正确地进行解析。
自动完成功能和类似功能可以为您提供帮助/帮助,但它们并不是最终的事实-不要期望它们如此。
关于c++ - C++ IDE将无法推断/自动完成模板类中std::array下标表达式的成员访问,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59545304/