我从使用VisualStudio2010进行编译的开发人员那里收到C++源代码,然后我需要在各种不同的编译器下重新编译:GCC、LLVM、其他版本的VisualStudio等。有时他发送给我的代码(在VS2010中编译时没有警告)在其他编译器下编译失败。是否有任何他可以在VS2010中设置的编译器设置来增加他的代码干净可移植的可能性? 最佳答案 在语言层面,没有Elixir。您能做的最好的事情就是尽可能地遵守语言标准。如果您利用特定于特定编译器的扩展,大多数编译器都可以选择发出警告或错误(对于VisualC++,/Za将禁用非标准语
当我想查看std::map容器的所有元素时,我在VS2010RC中调试我的应用程序时遇到了一个小问题。当调试器到达断点时,我想在元素检查器中检查map的值(在“本地”窗口和用鼠标悬停变量名称后的弹出窗口中),我正在向下滚动它在100个元素上停止的元素列表,我不能下一个元素。map包含200多个元素(map的计数器参数正确显示了这一点)但我无法在元素检查器中查看所有元素。即使是最简单的问题也会出现std::map填充了200个int值。也许这是设置的问题,但我已经尝试了很多组合,还是不行。也许有人知道如何解决这个问题。预先感谢您的帮助。 最佳答案
我们在将代码移植到VC++的旧版本2010时遇到了问题。问题是由VC中的map实现引起的,它导致non-type-argument中的pointer-to-member派生到基本转换被要求:#include#includetemplateboolf(MapValueTypeconst&v);intmain(){typedefstd::mapMapType;MapTypem;std::find_if(m.begin(),m.end(),f);}生成以下消息:Standardconversionfrompointer-to-memberofbasetopointer-to-memberof
在VisualStudio中进行C++编程时,它坚持要在访问修饰符上给我这些可怕的缩进-如果有人真的喜欢这种方式,我表示哀悼;)(伙计们开个玩笑!)publicclassMyClass{public:MyClass();~MyClass();intwowAnInt();}不用说,我想要这个:publicclassMyClass{public:MyClass();~MyClass();intwowAnInt();}有什么方法可以使用任何东西(我有ReSharper和Highlighter)或者VanillaVS来实现这一点吗? 最佳答案
如何开始使用VisualStudio2010的tr1功能?对于更具体的情况,我需要std::tr1::function。我试过包括#include报告失踪,而#include包括很好,但是当我设置这个时:std::tr1::functioncallback;我得到:1>d:\marmalade\projects\core\src\button.h(21):errorC3083:'tr1':thesymboltotheleftofa'::'mustbeatype1>d:\marmalade\projects\core\src\button.h(21):errorC2039:'func
我正尝试着手进行Windows套接字编程。我知道你必须#includewinsock2.h然后链接到ws2_32.lib。问题是我的visualstudio2010终极版中没有ws2_32.lib。我应该怎么做才能启动并运行它?其次,我经常在VS2010中集成新的API。我一直忘记要包含什么和链接什么以及包含哪些文件和链接哪些文件。如果你能指出一个教程,它给出了VS2010中的一般过程来处理include和lib文件,同时集成一个新的API。 最佳答案 很可能你确实有这个库,但它必须通过Project->Poperties->Lin
此问题与随后提出的问题密切相关here.定义类内常量的方法描述here通过Stroustrup。当我遵循Stroustrup的方法时,我看到了预期的结果。但是,在VisualStudio2010中,调试器无法解析该类范围内的staticconst类成员。这就是我的意思:#includeclassFoo{public:staticconstintA=50;chararr[A];voidshowA();};voidFoo::showA(){std::cout当调试器在showA()中时,“watch”窗口报告:Error:Symbol"Foo::A"notfound我想强调的是,该程序确实
我正在使用visualstudio2010构建.dll。我写了一个试验://trialDLL.h#ifndefTRIALDLL_H_#defineTRIALDLL_H_//...MyMathFuncsclassdefinitionomitted#ifdef__cplusplusextern"C"{#endif#ifdefTRIALDLL_EXPORT#defineTRIALDLL_API__declspec(dllexport)#else#defineTRIALDLL_API__declspec(dllimport)#endifTRIALDLL_APIMyMathFuncs*__std
这里有一个VS2005的解决方案:http://www.dotnetmonster.com/Uwe/Forum.aspx/vs/3298/Make-Visual-C-recognize-file-extensions-as-C-files但没有找到适用于VS2008和VS2010的相同注册表。那么我在哪里可以找到解决方案更新呢?谢谢。 最佳答案 如果您要查找的是VS2010编辑器中不同扩展名的语法突出显示:转到工具->选项->文本编辑器->文件扩展名并输入扩展名。 关于c#-如何使Vis
因此,我将很快着手移植两个API(C++和C++/CLI)以使用VS2010编译器。我认为在这方面抢先一步是个好主意。有什么建议吗? 最佳答案 概述了对C++/STL项目的重大更改here.vs2010还将在MSBuild的for中使用不同的构建机制。.不幸的是,vs2010won'textendtoC++/CLI中改进后的Intellisense有些人对此不太满意,但是native代码开发人员可以期待一个响应速度更快的环境(希望如此)。 关于c++-从VS2008迁移到VS2010时要