其他分享
首页 > 其他分享> > 哪个C成语在C 11中被弃用?

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

作者:互联网

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

旧的编码方式肯定不如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