C++ IDE 不会 deduce/auto 完成对模板 class 中 std::array 下标表达式的成员访问

C++ IDEs will not deduce/auto complete member access on std::array subscript expression in template class

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 没有响应而感到恼火。

因此,为了响应,IDEs 在有限的时间内进行有限的解析,这意味着它们并不总是正确的。

assist/help 有自动完成和类似的功能,但它们不是最终的真相 - 不要期望它们是。

不知道这个特定的上下文。然而,根据我与其他 IDE 的经验,我可以想到一种可能性。请检查您的 IDE 版本是否支持 C++11 功能的自动完成,因为 std::array 是适用于 C++ 11 及更高版本的功能。 检查是否需要安装额外的插件来启用 c++11 功能的自动完成功能。