Visual Studio 2010,Intellisense和PCH:丑陋的stdafx.h有哪些替代方案?

Ale*_* C. 18 c++ precompiled-headers visual-studio visual-c++

我最近切换到Visual Studio 2010,而Intellisense在使用boost库时不需要花半分钟时间显示,Microsoft的建议似乎使用了预编译的头文件.

除了我之前从未使用过它们(除非被Ugly ATL Wizards(TM)强迫),所以我四处寻找它们是如何工作的.

基本上,大集中stdafx.h方法似乎是完全错误的.我从不想在所有来源中包含(甚至便宜)一大堆头文件.由于我不使用Windows库(我使用C++/CLI更高级别的包装器,然后使用.NET与外界交谈),我没有"一整套不变的巨大标头".正好boost和标准的库标题分散在各处.

一个有趣的方法解决这个问题,但我无法弄清楚如何使这项工作.似乎每个源文件必须编译两次(如果我错了,请纠正我):一次使用/ Yc,一次使用/ Yu.这增加了开发人员的负担,必须手动调整构建系统.

我希望找到一些"为每个源文件自动生成一个预编译的头文件"技巧,或者至少是一些"最佳实践",但大多数人似乎都乐于将这个世界纳入其中stdafx.h.

我可以在每个源文件的基础上使用预编译头文件有哪些选项?我并不真正关心构建时间(只要它们不会飙升),我只想让intellisense 快速工作.

Ala*_*lan 9

对于初学者来说,你读错了文章.每个文件都没有编译两次.文件stdafx.cpp在/ Yc(c,for create)之前编译一次,然后项目中的每个其他文件用/ Yu(u,for use)编译一次,并导入先前创建的保存状态的结果来自stdafx.cpp.

其次,这篇文章是7岁,正在讨论VC++ 6,所以你应该开始不信任它.但即使假设其中的信息仍然适用于VC++ 2008或2010,它似乎是不好的建议.它建议使用的方法/pragma hdrstop是寻找问题的解决方案.如果您的标题包含您不希望在每个文件中包含的内容,那么它们就不应该放入预编译的标题中.


Bar*_*art 5

你的问题基本上似乎是在VS2010中Intellisense的Boost速度很慢?我没有针对这个问题的直接解决方案,但Visual Assist X可以作为您的选择吗?我现在在各种版本的Visual Studio中使用它并且非常愉快.不是直接的解决方案,但它可能适合您.