C++ Visual Studio支持新的C/C++;标准?
我一直在读关于C99和C++11以及所有这些被添加到语言标准中的非常美妙的东西,这些东西将来可能会很好地使用。然而,我们目前在Visual Studio中编写C++的领域感到憔悴。 标准中的任何新东西是否会被添加到VisualStudio中,或者微软是否对添加新的C#变体更感兴趣C++ Visual Studio支持新的C/C++;标准?,c++,visual-studio,visual-c++,c++11,c99,C++,Visual Studio,Visual C++,C++11,C99,我一直在读关于C99和C++11以及所有这些被添加到语言标准中的非常美妙的东西,这些东西将来可能会很好地使用。然而,我们目前在Visual Studio中编写C++的领域感到憔悴。 标准中的任何新东西是否会被添加到VisualStudio中,或者微软是否对添加新的C#变体更感兴趣 编辑:除了接受的答案,我发现VisualC++团队博客: 具体来说,这篇文章: 非常有用。谢谢 微软从未表示过对跟上c99标准(现在已经过时)的速度有任何真正的兴趣。对于C程序员来说,很悲哀,但我怀疑微软对C++社
编辑:除了接受的答案,我发现VisualC++团队博客:
具体来说,这篇文章:非常有用。谢谢 微软从未表示过对跟上c99标准(现在已经过时)的速度有任何真正的兴趣。对于C程序员来说,很悲哀,但我怀疑微软对C++社区的关心更多。
VisualC++ 2008 SP1至少包含了Tr1的一部分,并且不时地,Visual C++团队正在写博客或谈论C++ 0x,所以我猜他们会在这个时候在某个时候支持它。不过,我没有看到任何官方消息。
微软对此有一系列公开回复,其中大多数都指责用户。像这个:现在,VisualC++编译器团队偶尔会问到为什么我们没有实现C99。这实际上是基于用户的兴趣。当我们收到许多关于某些C99功能的请求时,我们尝试实现它们(或类似的功能)。几个例子是可变宏、
long-long
、\uuuu-pragma
、\uuuu-FUNCTION
和\uu-restrict
。如果有其他C99功能,你会发现在你的工作有用,让我们知道!我们没有从我们的C用户那里听到太多,所以说出来,让别人听到
嗨:不幸的是,我们从大多数用户那里得到的绝大多数反馈是,他们更希望我们关注C++-0x而不是C-99。我们已经“精心挑选”了某些流行的C-99功能(可变宏,long
),但除此之外,我们不太可能在C-99领域做更多的工作(至少在短期内)
乔纳森洞穴
Visual C++编译团队。< /P> 这是一种非常令人伤心的情况,但如果你怀疑微软想要锁定用户,这也是有道理的:这使得将基于gcc的现代代码移植到MSVC非常困难,至少我觉得这非常痛苦
不过,存在一种变通方法:请注意,英特尔在这方面要开明得多。“英特尔C编译器”可以处理C99代码,甚至具有与gcc相同的标志,使在平台之间移植代码变得更加容易。此外,“英特尔编译器”也可以在visual studio中工作。因此,通过废除MS编译器,您仍然可以使用您似乎认为具有某种价值的MS IDE,并使用C99来满足您的需求一种更明智的方法是诚实地转向Intel CC或gcc,并在编程环境中使用Eclipse。代码在Windows Linux Solaris AIX等中的移植性通常在我的经验中是重要的,不幸的是,MS工具不支持。 < P>萨特是ISO C++标准体的主席,也是为微软工作的。我不知道VisualStudio C标准——主要是因为我从来不使用纯C -但是微软肯定要推动新的C++标准向前发展。这是一个类似于OrrangouHuST的证据——包括在最新的VisualStudio服务发布中的Tr1。 < P>萨特是主持人C++的一个非常活跃的成员,也是VisualStudio为微软的软件架构师。 <>他是C++ C++ 0X标准化内存模型的作者之一。例如,以下文件:
上面有他的名字。因此,我想只要H.Sutter留在微软,就可以保证在Windows上包含C++0x 至于仅部分包含在VisualStudio中的C99,我想这是一个优先级问题
- 最有趣的C99特性已经出现在C++(内联、变量声明、任何/注释等)中,并且可能已经在VisualStudio中的C中使用(如果只在C++编译器中执行C代码)。关于C++中C99特性的更全面的讨论,请参阅我的答案。 <99)通过添加C++中已经存在的特征,但以不兼容的方式(CUCH,但C99中的布尔复杂实现是可笑的,最多见……),增加了C和C++之间的分歧。
- Windows上的C社区似乎不存在或不够重要,不值得承认
- Windows上C++社区似乎太重要了不容忽视
- .NET是微软希望人们在Windows上编程的方式。这意味着C#,VB.NET,可能是C++/CLI
^_^ 不过,我想最后一句话:已经够清楚了 编辑2012-05-03 赫伯·萨特明确表示:
来源:不幸的是,MSVC对C的支持非常缺乏。它只支持C99的一部分,它是C++的子集…也就是说