当前位置:  开发笔记 > 编程语言 > 正文

为什么Visual C++缺少重构功能?

如何解决《为什么VisualC++缺少重构功能?》经验,为你挑选了3个好方法。

在Visual Studio 2008中使用C++进行编程时,为什么在使用C#时没有像重构菜单中看到的那样的功能?

我经常使用Rename,当它不存在时你真的很想念它.我确信你可以获得提供这个的插件,但为什么在使用C++时它没有集成到IDE中?这是否是因为必须解析C++的方式?



1> JSBձոգչ..:

C++的语法和语义使得正确实现重构功能变得异常困难.有可能实现一些相对简单的东西来覆盖90%的情况,但在剩下的10%的情况下,简单的解决方案会通过改变你永远不想改变的东西来破坏你的代码.

阅读http://yosefk.com/c++fqa/defective.html#defect-8,以简要讨论C++中任何重构代码必须处理的困难.

微软显然决定在C++的这一特定功能上投入使用,让第三方开发人员尽其所能.


所以我们在这里说明微软在解决难以置信的难题方面做得很差,而Eclipse基金会更好吗?我在VS中编程以获得项目约束,但是当我需要重命名变量时,我只为此启动Eclipse ...
为什么这是一个公认的答案?将C++代码解析为语义上有意义的形式HAS由编译器完成.MS显然拥有IDE附带的编译器.为什么不使用相同的解析代码?解析的难度并不重要,因为无论如何它们已经完成了.
不,确实很糟糕.这家伙很沮丧,甚至没有礼貌(曾经联系过这个家伙,关于一些狡猾的辱骂点,他没有关心).但是,重构显然很困难(取决于代码大小),并且必须在初始设计上三思而后行.
这是一个不好的链接,因为作者缺乏C++知识.例如,他不知道RVO.如果您正在使用Clang API,那么重构工具非常简单,其中作者已经完成了所有重载决策.问题是MSVS缺少这样的API.
+1:优秀的链接,有书标记,谢谢.
Microsoft Visual Studio 2015能够重构重命名某些C++代码.

2> Brian..:

我不确定为什么会这样,但是存在有帮助的第三方工具.例如,现在我正在评估Visual Assist X(由Whole Tomato提供).我们也使用Visual Studio 2005.


确实如此.我注意到它不能很好地处理几层模板(比如使用Boost时).

3> mem64k..:

devexpress提供加载项重构!适用于VS2005和VS2008的C++.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有