解析C++的语法结构比其他语言更难吗?

eni*_*has 5 c++ ide code-completion

我观察到几乎在所有IDE中,Java和C#的代码完成优于C++.例如,在Netbeans中,Java自动完成远远优于C++自动完成,而在Visual Studio中,C#自动完成比Visual C++更好.

有很多IDE提供了非常好的Java自动完成功能,但C++也是如此,即使它是较旧的语言.

解析C++会更难吗?如果是这样,为什么?

Ben*_*igt 9

解析C++比较困难,因为语法是非常有状态的.知道是否A * b;是指针声明或乘法取决于A当前范围中的标识符是指类型还是变量.

但它不只是解析.自动完成需要语义分析,重载解析,模板扩展,模板特化选择,constexpr函数评估,因为它们可以出现在模板参数列表中......

基本上要确定任意C++表达式的类型并列出该类型的成员,除了机器代码生成之外,您需要所有非优化编译器.

上述大多数步骤不适用于没有模板专业化的语言.

  • 据说Xcode与LLVM的集成发生了,所以他们可以使用常规编译器来完成所有这些,但Xcode的C++自动完成仍然很糟糕. (3认同)