C++ Technical Report 1

✍ dations ◷ 2025-12-10 14:32:45 #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)。

相关

  • 柳宗元柳宗元(773年-819年11月28日),字子厚,河东(今山西运城)人,唐代著名文学家、思想家,唐宋八大家之一。参加永贞革新失败,被贬为永州司马。为当道者嫉恨,除短暂奉召入京外,终生未再北还。因
  • 永久模铸造法永久模铸造是利用可重复使用的模具(即所谓的“永久模”,一般以金属制成)的金属铸造制程。利用重力填充模具是最常见的方法,称为重力铸造,不过也有使用气压或真空的制程。重力铸造
  • 伦敦史坦斯特机场伦敦斯坦斯特德机场(英语:London Stansted Airport;IATA代码:STN;ICAO代码:EGSS),位于伦敦东北的埃塞克斯郡境内,是一座服务于英国伦敦的单跑道民用机场,多家欧洲廉价航空公司的枢杻机
  • 法比安·勒菲弗法比安·勒菲弗(法语:Fabien Lefevre,1982年6月18日-),生于奥尔良,是一名法国男子皮划艇运动员。他曾参加2004年和2008年两届奥运,其中2004年奥运收获铜牌,2008年奥运收获银牌。
  • 大瓦尔博纳峰坐标:41°28′7.841″N 1°6′46.22″E / 41.46884472°N 1.1128389°E / 41.46884472; 1.1128389大瓦尔博纳峰(加泰罗尼亚语:Tossal Gros de Vallbona),是西班牙的山峰,位于该国
  • “比萨”号装甲巡洋舰“比萨”号装甲巡洋舰(意大利语:Pisa)是一艘20世纪初为意大利皇家海军建造的装甲巡洋舰,也是在其旗下服役同级舰中的首舰。1911年至1912年间,本舰参加了意土战争。在战争期间,该舰支援占领图卜鲁格、利比亚和多德卡尼斯的几个岛屿,并轰炸了守卫达达尼尔海峡入口的防御工事。在第一次世界大战期间,“比萨”号的活动受到奥匈帝国潜艇的威胁。尽管如此,该舰还是参加了1918年底对阿尔巴尼亚杜拉佐的轰炸。战后,本舰被改成为一艘训练舰,并最终于1937年被除籍,之后被报废拆解。“比萨”号的垂间长度为130米(426英
  • 乌桓乌桓(上古汉语拟音:.mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicode","Code2000","Gentium","Gentium Alternative","TITUS Cyberbit Basic","Arial Unicode MS","IPAPANNEW","Chrysanthi Unicode","GentiumAlt","B
  • 玛格丽特·巴兰德玛格丽特·巴兰德(英语:Margaret Barrand,1940年-),是一位已退役英格兰女子羽毛球运动员。玛格丽特·巴兰德擅长双打,经常与不同人搭档参赛。在女子双打方面,她曾赢得苏格兰羽毛球公开赛(1962年、1964年、1966年)、美国羽毛球公开赛(1965年);在混合双打方面,她曾赢得美国羽毛球公开赛(1963年、1964年、1965年)、爱尔兰羽毛球公开赛(1963年、1965年)。她曾代表英格兰参加1963年尤伯杯。在对阵美国队的决赛中,她与乌苏拉·史密斯出赛双打,先以8:15、15:18输
  • 马里奥·切瓦斯科马里奥·切瓦斯科(意大利语:Mario Cevasco,1938年12月18日-1999年4月12日),意大利前男子水球运动员。他曾代表意大利国家队参加1964年、1968年和1972年夏季奥林匹克运动会水球比赛。
  • 丹麦海事博物馆丹麦海事博物馆(丹麦语:M/S Museet for Søfart)是一座位于丹麦赫尔辛格的海事博物馆。该馆舍成立于1915年,其收藏品涵盖15世纪至今的丹麦贸易和航运的相关文物与常设展览。在2011年之前,该博物馆被称为贸易和海事博物馆(丹麦语:Handelsog Søfartsmusee)该博物馆最初位于克隆堡。2013年,博物馆搬进了由比亚克·英格尔斯集团(英语:Bjarke Ingels Group)(BIG) 设计的新地下馆舍。丹麦海事博物馆展示了大量船舶模型、绘画、照片和相关文物,展示了自拿破