C++ Technical Report 1

✍ dations ◷ 2025-11-17 09:13:22 #C++ Technical Report 1

C++ Technical Report 1(TR1)是ISO/IEC TR 19768, C++ Library Extensions(库扩展)的一般名称。TR1是一份文件,内容提出了对C++标准库的追加项目。这些追加项目包括了正则表达式、智能指针、哈希表、随机数生成器等。TR1自己并非标准,它是一份草稿文件。然而它所提出的项目大多数已成为的C++11及之后版本的官方标准的一部分。这份文件的目标在于“为扩展的C++标准库创建更为广泛的现成实现品”。

编译器并不需要保证包含TR1的组件,因为TR1并非官方标准的一部分。顺带一提,Boost提供了TR1大部分的实现,数个编译器/库开发商也已提供了各自的实现版本。

TR1并不代表下一届标准的全部;举例而言,下一届的标准C++11包含了线程的支持。

新的组件被放置在std::tr1的名字空间()里,以和现在的标准库做区别。

TR1包含以下组件:

一个wrapper reference是由模板类reference_wrapper产生的实体()获得。wrapper reference近似于C++语言中的引用。

使用ref以获得任何实例的wrapper reference(对常数引用const &使用cref)。

wrapper reference对模板函数(template function)尤其有用,当模板参数推导不出引用的时候(示例如下:)

void f( int &r ) { r++; }template< class Funct, class Arg >void g( Funct f, Arg t ){  f(t);}int main(){  int i = 0;  g( f, i );          // 'g< void(int &r), int >' 被实例化  cout << i << endl;  // 輸出:0  g( f, ref(i) );     // 'g< void(int &r), reference_wrapper<int> >' 被实例化  cout << i << endl;  // 輸出:1}
智能指针(Smart Pointers)
  • 基于Boost Smart Pointer library
  • <memory>头文件增加了 - shared_ptrweak_ptr
  • 将(RAII)手法用于内存管理和异常安全性。

仿函数

以下四个模块被加进<functional>头文件之中:

第二类柱贝塞尔函数

第二类球贝塞尔函数

C++被设计成与C语言兼容,但由于不同的标准,C++并不是C的严格超集合。TR1试图调和这些差异,透过对各种头文件,如<complex>、<locale>、<cmath>等进行扩展。这些改变帮助C++能够与C99版本的C标准更为一致(并非所有C99都包含于TR1)。

相关

  • 奥地利行政区划奥地利行政区划中设有9个邦,其中下奥地利、克恩滕、施蒂利亚、蒂罗尔和萨尔茨堡州自中世纪已存在,1780年代约瑟夫二世设立上奥地利州。福拉尔贝格在1861年成立前,属于蒂罗尔州
  • 嘉手纳空军基地26°21′20″N 127°46′03″E / 26.35556°N 127.76750°E / 26.35556; 127.76750 (嘉手纳)嘉手纳空军基地(日语:嘉手納空軍基地/かでなくうぐんきち kadena kūgun kichi *
  • 灵昆湿地灵昆岛位于瓯江入海口,是浙江省最大的河口冲积岛,面积25平方公里,另有面积相当的滩涂,总面积超过50平方公里,有人口17,457(五普),属温州市洞头区(原属龙湾区,洞头县改区时划入),设灵昆街
  • 鸟文斋荣之鸟文斋荣之(日语:鳥文斎 栄之/ちょうぶんさい えいし  ?,1756年-1829年8月1日)是江户时期后期的浮世绘画师,武家出身,活跃于19世纪仁孝天皇时期,曾经师承狩野典信所属的荣川院,在当
  • 沈浩波沈浩波(1976年-),江苏泰兴人,中国诗人,北京磨铁图书有限公司总裁。沈浩波1996年开始诗歌创作,毕业于北京师范大学中文系。1998年发表了《谁在拿90年代开涮》并在诗坛引发了诸多争议
  • 王越 (东汉)王越(生卒年不详),辽东燕山人,东汉末年知名武术家,擅使剑术。史阿之师。18岁匹马入贺兰山,只身取羌族首领首级而归,无人敢挡其锋,因而成名。于30岁开始周游各州,四处旅行。因其热心出
  • 鲁本·奥斯卡·沃萨德·雷佐拉鲁本·奥斯卡·沃萨德·雷佐拉(1991年4月21日-)是一名阿根廷独木舟运动员,曾代表国家参加2012年伦敦奥运的男子200米双人爱斯基摩艇比赛,并未获得奖牌。
  • 土耳其护照土耳其护照是土耳其发给土耳其公民供其出入国(边)境、在国(境)外旅行或居留时证明其国籍和身份的旅行证件。北塞浦路斯公民也可申请土耳其护照,以前往不接纳北塞浦路斯护照为合法旅游证件的国家和地区。土耳其护照由土耳其安全总局签发(或由土耳其驻尼科西亚大使馆向土耳其籍塞浦路斯人签发),申请人在当地拥有护照办公室的警察局填写申请表。2010年6月1日以后签发的护照为10年(特殊护照为5年)有效期的电子护照。土耳其符合国际民用航空组织的新电子护照自2010年6月1日开始发行。申请人可通过政府网站提交申请,护照会通过邮
  • STS-41-BSTS-41-B(原来编号STS-11)是历史上第十次航天飞机任务,也是挑战者号航天飞机的第四次太空飞行。
  • 罗伯·布莱尔罗伯·布莱尔(英语:Robert Blair,1981年8月7日-),苏格兰男子羽毛球运动员,擅长双打项目。罗伯·布莱尔8岁时开始接触羽毛球运动,跟母亲一起在训练班打球。2006年,罗伯·布莱尔联同安东尼·克拉克参加世界羽毛球锦标赛男子双打比赛,赢得亚军;同年,他们又赢得英联邦运动会羽毛球比赛男双铜牌、欧洲羽毛球锦标赛季军,以及英格兰全国赛冠军。2010年12月,罗伯·布莱尔决定转为代表苏格兰,以争取能在2014年代表自己的出生地出战主场举行的英联邦运动会。只列出曾进入半决赛的国际赛事成绩: