[C ++ IDE将不会推断/自动完成模板类中std :: array下标表达式的成员访问

问题描述 投票:1回答:2
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++ xcode generics ide clion
2个回答
0
投票

正确解析C ++是一个非常复杂且耗时的问题。

如果IDE能够完美地完成它,将花费与编译应用程序一样多的时间,并且您会因为IDE无响应而感到恼火。

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

这里有自动完成功能和类似功能可以提供帮助/帮助,但它们是[[not最终的事实-别指望它们是。


0
投票
不知道此特定上下文。但是,根据我对其他IDE的经验,我可以想到一种可能性。请检查您的IDE版本是否支持C ++ 11功能的自动完成功能,因为std :: array是可从c ++ 11开始使用的功能。检查是否需要安装其他插件才能启用c ++ 11功能的自动完成功能。
© www.soinside.com 2019 - 2024. All rights reserved.