【问题标题】:Why Visual Studio in C++ is not as intelligent as it's in C#? [closed]为什么 C++ 中的 Visual Studio 不如 C# 中的智能? [关闭]
【发布时间】:2011-04-29 21:33:29
【问题描述】:

我在 Visual Studio 2010 中使用 C++ 编写作业,我发现 Visual Studio 不如在 C# 中那么出色。没有智能感知,没有代码格式和愚蠢的错误消息负载,如果一个错误得到修复,它们可能会一起消失。

为什么?

【问题讨论】:

  • “大量错误消息,如果一个错误得到修复,它们可能会一起消失”这只是 C++ 编程的乐趣之一。至于其他方面,Visual Studio 确实为 C++ 提供了 IntelliSense、代码着色、格式化,甚至是有限的 IDE 内语法检查(“squiggles”);你确定你没有搞砸你的 Visual Studio 设置吗?如果您创建一个新的空 C++ 项目并添加一个 .cpp 文件,您会获得任何 IntelliSense 吗?
  • 关于代码格式,工具 > 选项 > 文本编辑器,并确保 C/C++ 类别具有您在 C# 中使用的相同选项(就在上方)。

标签: c# c++ visual-studio


【解决方案1】:

C++ 是一种比 C# 复杂得多的语言,这使得工具很难解析和提供 Intellisense 反馈。

【讨论】:

  • @Heandel C++ 如何只解析一次? C++ 必须处理宏...然后处理模板...然后处理其余部分...然后展开使用的模板并处理...
  • @Heandel 哦,好吧,这很有道理。
  • @David Heffernan:有人对这个问题和所有答案投了反对票,并投票结束了这个问题。我不知道,但似乎只是为了伤害。
  • @Jack 很抱歉假设是你。
  • 我认为用“复杂”这个词来形容它是错误的,但我同意这里的主要问题不是 IDE,而是语言和库本身。
【解决方案2】:

自从 .NET 出现以来,Microsoft 并没有在其 C++ 工具上投入太多精力。在很多方面,当前的 IDE 都比 Visual C++ 6 差。

这里是 Visual C++ 团队关于最近 C++ 相关工作以及为什么没有 C++/CLI 的 Intellisense 的博客文章:http://blogs.msdn.com/b/vcblog/archive/2011/03/03/10136696.aspx

【讨论】:

  • 你在怀旧吗?你最近用过 VC 6 吗?我最近不得不参加一个旧项目。 VS 2010 在 C++ 的各个方面都好得多。
  • @Byron:你真的知道如何使用VC6吗?我最近使用过它,Kristopher 是绝对正确的:虽然 VS 2010 更漂亮,但就实际功能而言,VC 5/6明显更胜一筹。
  • @Kristopher Johnson:实际上,这个答案让我确信,C++ 比 C# 复杂得多。我认为这可能是一个商业原因,而不是语言的复杂性
  • @Jack 我认为 MS 并没有打算让 C++ 看起来很糟糕。当他们主要在 .net 上工作时,他们显然有一段时间对原生工具失去了兴趣。在某种程度上,这是可以理解的,因为 .net 曾经/现在是一项艰巨的任务。最近,他们在标准工作和 C++0x 支持方面非常努力地开发 C++ 编译器。也许他们在 IDE 上没有像他们可能的那样努力工作。但 C++ 确实是一个挑战,主要是因为历史的负担。
  • 我同意将更多资源用于 C# 开发工具而不是 C++ 开发工具有合理的商业理由。而且微软并不孤单:我认为没有任何好的 IDE 对 C++ 的支持接近于对 Java、Javascript、Python、Objective-C 或其他的支持。
【解决方案3】:

当前版本的 VC++ 确实具有 Intellisense,但效果不是特别好。如果您需要大量使用它,您可能需要考虑获取Visual Assist X 的副本。它改进了 Intellisense、语法高亮,并使 VS 总体上更好。

【讨论】:

  • 是的,我知道有第三方解决方案,但我想知道为什么没有这些第三方工具与 C# 相比仍然愚蠢到这个级别。
  • @Jack 好的,我现在可以看到了。很抱歉中伤。
  • @Jack:不可能确切地说出原因。与大卫赫弗南不同,我认为这可能是故意的。我自己的猜测是,如果微软认为他们可以侥幸逃脱的话,他们很久以前就会停止销售大多数原生工具。照原样,他们尽最大努力引导人们使用 .NET,并保持原生工具刚好足以阻止第三方开发更好的工具。他们改进了他们的原生工具,但我认为只有当(例如)Qt 吓到他们时。
  • 考虑到这些工具仍在内部广泛使用。显然没有办法验证您声称 MS 宁愿停止销售本机 C++ 工具的说法。但他们当然没有兴趣完全停止改进它们。它们几乎用于 Microsoft 的每个部门,从应用程序到系统软件,以开发本地程序。它与Qt无关,我不太喜欢这种阴谋论。
  • @Cody:他们经常使用内部的编译器,毫无疑问,他们对编译器进行了很多改进。关于他们在内部使用 IDE 进行 C++ 开发的程度还不确定——而且它不仅没有得到改进,而且还有一些有用的重要功能删除
【解决方案4】:

c++ 是一种更复杂的语言,可以在 IDE 中很好地处理。宏使智能感知更加困难。它们还允许您在每次更改时创建大量错误:)

【讨论】:

    猜你喜欢
    • 2015-01-21
    • 2015-03-14
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多