ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

哪个C成语在C 11中被弃用?

2019-09-30 00:07:38  阅读:193  来源: 互联网

标签:c c11 c-faq


有了新的标准,就会有新的做事方式,而且许多方式比旧的方式更好,但旧的方式仍然很好.同样明显的是,由于向后兼容的原因,新标准没有正式弃用.所以剩下的问题是:

旧的编码方式肯定不如C 11风格,我们现在可以做些什么呢?

在回答这个问题时,你可以跳过诸如“使用自动变量”之类的显而易见的事情.

解决方法:

> Final Class:C 11提供最终说明符以防止类派生
> C 11 lambdas大大减少了对命名函数对象(仿函数)类的需求.
> Move Constructor:由于对rvalue引用的一流支持,不再需要std :: auto_ptr工作的神奇方式.
> Safe bool:这是前面提到的. C 11的显式运算符消除了这种非常常见的C 03习语.
> Shrink-to-fit:许多C 11 STL容器提供了shrink_to_fit()成员函数,这可以消除与临时交换的需要.
> Temporary Base Class:一些旧的C库使用这种相当复杂的习语.使用移动语义,不再需要它.
> Type Safe Enum C 11中的枚举非常安全.
> Prohibiting heap allocation:= delete语法是一种更直接的方式,表示明确拒绝特定功能.这适用于防止堆分配(即=成员运算符new删除),防止复制,分配等.
> Templated typedefAlias templates在C 11中减少了对简单模板化typedef的需求.但是,复杂类型生成器仍然需要元函数.
>使用generalized constant expressions可以轻松替换一些数值编译时计算,例如Fibonacci
> result_of:类模板result_of的使用应替换为decltype.我认为result_of在可用时使用了decltype.
> In-class member initializers使用默认值保存默认初始化非静态成员的类型.
>在新的C 11代码中,NULL应重新定义为nullptr,但请参阅STL’s talk以了解他们为什么决定反对它.
> Expression template狂热分子很高兴在C 11中使用trailing return type函数语法.不再有30行长的返回类型!

我想我会在那里停下来!

标签:c,c11,c-faq
来源: https://codeday.me/bug/20190929/1833791.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有