微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

什么C(98/03)功能不是很好的编译器支持?

通常我会读取一些软件,删除一些C功能,以符合可怜/老/异国情调的C编译器.

This one只是我进入的最后一个Box2D不使用命名空间,因为他们需要支持

poor C++ compilers where namespace support can be spotty

我可以想到的一个更大的例子是Qt,它依赖于MOC,限制了模板使用,并且避免了模板(而且,这至少对于Qt3和以前的版本来说是至关重要的,Qt4主要是为了遵守自己的惯例).

我想知道什么编译器是穷人?
lots of C++ compilers在那里(我从来没有听说过他们中的大多数),但我希望所有的人都支持最常见的(/简单的)C功能,如命名空间(除非他们死了);不是这样吗?

什么是最不受支持功能
我可以很容易地期待缺乏外部模板,也许模板部分专业化和类似功能.最多甚至是RTTI或例外,但我从来没有怀疑命名空间.

解决方法

在我的经验中,人们只是害怕新事物,特别是二十年前破坏的东西.在本世纪所写的任何东西中,没有任何有效的理由反对使用命名空间.

如果你正在寻找一些东西来折腾,那么如果你不是很久以前就是针对Windows,那么你不得不做更多的事情,而不仅仅是把C的功能抛出来,而不是使用它们,你必须使用不同的语法.模板被认为是VC中支持较差的功能之一.他们已经好多了,但仍然有时失败.

该特定编译器(STILL!)不支持的另一个编译器正在重载虚拟函数以将派生类型指针返回到使用MI时返回的基本版本的类型. VC只是很奇怪,你最终不得不做virtual_xxx()并提供非虚拟的“xxx()”函数来复制标准行为.

原文地址:https://www.jb51.cc/c/113091.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐