2 个回答
-
| 2017-07-18 14:26:08 广告
你要的是提升自己的编程兴趣而不是在意工具这个细节,不要相信那些人说的用IDE你就不链接和预编译的过程,只要你有心就可以去学和了解,最后用@vczh的话结束,逗逼的程序员秀工具,优秀的程序员秀的是代码,大概就是这样本问答由叛逆者提供
-
| 2017-07-18 13:57:52 广告
我必须前排说一下。Cl 对于 C++ 标准支持本来就是最烂。Visual Studio 2015 修复了 750 个 Bug。750个,由此可见 2013。2013 的时候居然连类内成员初始化都是有Bug的,只能靠弄一个 Error,呵呵呵呵。。。
不符合标准就是不符合标准。Cl 不支持 C++ 98 的 Two-phase lookup,那一套 ATL的代码都是不符合标准的,还得 Clang 用一些 hack 让它们编译过,呵呵呵。Cl 不支持 Expression SFINAE(目前对 Expression SFINAE 的支持为 Partial):导致各种开源代码编译不过(一位大神实现的 intrusive_ptr,根本在 Cl 上编译不过。lhmouse/intrusive_ptr · GitHub,更不用提帝球的YSLib了。)
那 Minimal Support for GC。。。我来给大家看一下 VC++ 的实现:全都是 No-op 好吧(当然,标准说 No-op 是合法的)。这。。。各位自己看。inline void declare_reachable(void *) { // increment pointer reachable count } template<class _Ty> inline _Ty *undeclare_reachable(_Ty *_Ptr) { // decrement pointer reachable count return (_Ptr); } inline void declare_no_pointers(char *, size_t) { // declare region to be pointer free } inline void undeclare_no_pointers(char *, size_t) { // undeclare region to be pointer free } inline _Pointer_safety get_pointer_safety() _NOEXCEPT { // get pointer safety status return (pointer_safety::relaxed); }
而且,Cl 到现在还不支持 Extended constexpr(C++ 14),又导致一票标准库不符合标准。可能又要有人说没用了?.......
这当然不是全部:
Nonstandard Behavior
再补一刀吧,The C++ Programming Language 4th Edition中的一段代码:然而 Cl 在/W3下无警告接受 char* p = "Plato"。(Update:有聚聚指出使用 /Zc:StrictString 可报 Error)void f() { char* p = "Plato"; // error, but accepted in pre-C++11-standard code p[4] = 'e'; // error: assignment to const }
用 Cl 写 C++ 非常痛苦的——你写了一段模板,在 Clang/MinGW 下都编译得那么顺利,而到了 Cl,就要想出各种Workaround了。本问答由叛逆者提供
更多
- 抚州公司注册营业执照流程是什么
- 61
- 3
- 无锡公司注销流程是什么
- 70
- 3
- 汇付天下pos机售后热线是多少
- 73
- 3
- 泸州公司注销去哪里办
- 46
- 3
- 汉中公司注册代办哪家好
- 81
- 3
- 黄山注册公司代办联系方式
- 81
- 3
- 贵港代办公司资质哪家好
- 83
- 3
- 北海公司注册代办哪家好
- 29
- 3
- 闪电宝pos机售后联系方式是什么?
- 95
- 3
- 贺州代办公司资质哪家好
- 23
- 3