标签:重要性 func 情况 har bind stl 委员会 设定 代码
编译器的作者对一些接下来可能发生的错误的理解一定胜过我们这些普通程序员,如果编译器发出警告,就表明可能存在某种情况会造成一些错误,而这些错误你可能都没想到过。所以我们不要忽略编译器的警告!
class Base
{
public:
virtual void f() const;
};
class Derive
{
public:
virtual void f();
};
这一段编译后,编译器会发出警告:
warning:D::f() hides virtual B::f()
这个警告是告诉你整个B::f()都被遮掩了,而不是说只是B::f()去掉了const。
如果你认为只是遮掩住了const,就大错特错。
严肃对待编译器发出的警告信息。努力在你的编译器的最高(最严苛)警告级别下争取“无任何警告”的荣誉。
不要过度依赖编译器的报警能力,因为不同的编译器对待事情的态度并不相同。一旦移植到另一个编译器上,你原本依赖的警告信息有可能消失。
TR1代表“Technical Report 1”。
在概括TR1之前看一下C++98列入C++标准程序库有哪些主要成分:
下面展示TR1组件实例:
tr1::function.此物得以表示任何callable entity(可调用物,也就是任何函数或函数对象)。比如我们想注册一个回调函数,该函数接受一个int并且返回一个string,我们可以这么写:
void registerCallback(std::string(int));
使用了tr1::function的话,更富有弹性。**我们接受一个int或者任何一个能够转为int的数值,并返回一个string或者任何能转成string的东西:
void registerCallback(std::tr1::function
tr1::result_of,是一个template,用来推导函数调用的返回类型。
C++标准程序库的主要机能由STL,iostream,locals组成,并包含C99标准程序库。
TR1添加了智能指针(shared_ptr),一般化函数指针(tr1::function),hash-based容器,正则表达式以及另外10个组件支持。
TR1自身知识一份规范。为获得TR1提供的好处,你需要一份实物,一个好的实物来源是Boost。
一是因为它和C++标准委员会之间有着很大联系:是由委员会成员创设的。
二是它接纳程序库的过程比较规范:
(1) 先发送邮件投递作品,Boost开发者会评估这个程序库的重要性,并且启动初步审查程序。
(2) 然后开始“讨论,琢磨,再次提交”循环周期。
(3) 最后准备好程序库,正式提交。会有一位复审管理员出面确认你的程序符合Boost的最低要求。比如最少通过两个编译器的,满足可移植性。
(4) 然后你的提交正式进入Boost社群,等待官方复审。期间会有志愿者查看你的程序库的各种素材,并考虑诸如以下问题:
Boost是一个社群,也是一个网站。致力于免费、源码开放、同僚复审的C++程序库开发。Boost在C++标准化过程中扮演深具影响力的角色。
Boost提供许多TR1组件实现品,以及其他许多程序库。
标签:重要性 func 情况 har bind stl 委员会 设定 代码
原文地址:https://www.cnblogs.com/love-jelly-pig/p/9738922.html