數(shù)據(jù)庫引擎開發(fā)預(yù)備boost學(xué)習(xí)指南_第1頁
數(shù)據(jù)庫引擎開發(fā)預(yù)備boost學(xué)習(xí)指南_第2頁
數(shù)據(jù)庫引擎開發(fā)預(yù)備boost學(xué)習(xí)指南_第3頁
數(shù)據(jù)庫引擎開發(fā)預(yù)備boost學(xué)習(xí)指南_第4頁
數(shù)據(jù)庫引擎開發(fā)預(yù)備boost學(xué)習(xí)指南_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Boost作者: : 2007年11月17Boost化進(jìn)程的發(fā)動(dòng)機(jī)之一。Boost庫由C++標(biāo)準(zhǔn)庫工作組成員發(fā)起,在C++社區(qū)中影響甚大,其成員已近2000人。Boost庫為我們帶來了、最酷、最實(shí)用的技術(shù),是不折不扣的“準(zhǔn)”標(biāo)BoostCBoostBoostBoostC++BoostAssign文檔CBoostRegexCBoostArrayBoostBoost庫學(xué)習(xí)指南和說明文 BoostBoost編程技 Boost中文文 Boost源碼剖 C++Boost學(xué)習(xí)資源列 C++Boost庫簡 Windows和Solaris上Boost安裝和編 0前 1Boost+解包(略 編譯 設(shè)置環(huán)境變 編譯 走進(jìn)Boost[Boost使用 0Boost簡 Boost和Boost安 Boost組件 小 注 Boost中的智能指 Boost介 智能指 智能指針的30秒介 深入shared_ptr實(shí) C++BoostThread編程指 前 創(chuàng)建線 互斥 條件變 線程局部僅運(yùn)行一次的例 Boost線程庫的未 參考資料 C++Boost庫文檔索 按字母順序庫列 按庫列 CBoostboost的老巢boost的中文站:CSDN--Boost系列專題Linux伊甸園-STL/boost專區(qū)http:/ dozb的bloghttp://dCBoostboost主要包含一下幾個(gè)大類:字符串及文本處理、容器、迭代子(Itor)、算法、函數(shù)對象據(jù)結(jié)構(gòu)、輸入/Catoiitoa之類的函數(shù)。當(dāng)然其中一個(gè)最大的好處就是支持泛EBNFarray:提供了常量大小的數(shù)組的一個(gè)包裝,喜歡用數(shù)組但是苦惱數(shù)組定位、確定數(shù)組大小等dynacbet,動(dòng)態(tài)分配大小的bet,我們知道STL里有個(gè)biet,為位運(yùn)算提供了不少方便可be器就可以包含不同類型的元素。比用void*要安全。個(gè)CSDN上的關(guān)于boost.python的中文資料:, , uitlity里提供了一個(gè)noncopyable類,可以實(shí)現(xiàn)“無法”的類。很多情況下,我們需要避免且語義上也說不過去。一般的避免實(shí)例的方法是把拷貝構(gòu)造和operator=,現(xiàn)在只要這里面除了reex、pon和et,ST1Boost+解包(略編譯Solaris編譯0前odrnegboohon,had,eboo+ 1Boost+解包(略到$BOOSTDIR\tools\build\jam_src下執(zhí)行build.bat對jam進(jìn)行編譯,編譯結(jié)果將存放在$BOOSTDIR\tools\build\jam_src\bin.ntx86下。如果你在執(zhí)行該批處理程序過程中遇到問題,如報(bào)告無法找到編譯器相關(guān)程序,請執(zhí)行X:\ProgramFiles\VisualStudio\VC98\Bin\VCVARS32.bat以建立VC的基本環(huán)境變量。Solaris到$BOOSTDIR\tools\build\jam_src下執(zhí)行./build.sh對jam進(jìn)行編譯,編譯結(jié)果將存放在設(shè)置環(huán)境變量 X:\ProgramFiles\ VisualStudio\VC98Solaris export編譯TOOLS你選擇的toolset,如gcc、msvc(即vc6)、vc7.1,此外還有g(shù)cc-stlport、msvc-stlport、vc7.1-看個(gè)究竟。BUILD編譯類型,上述選項(xiàng)表示編譯出支持static和dynamic的debug和release版本(4個(gè)版本。編譯后的lib、dll將被copy到$BOOSTDIR\bin\boost\libs下,但是這些lib、dll分散在不同的目錄下,為了便于使用,可以在上述下分別查找*.lib和*.dll找出這些文件,然后將他們分別全部copy到VC的lib和Windows的System32,也可以自己建立一個(gè)專門用于存放boost的lib文件的,然后依次選擇Tools->Options->Directories->Libraryfiles,將上述路徑添加到Solaris走進(jìn)Boost[Boost使用走進(jìn)Boost[Boost使用]0Boost組件lexical0Boost;數(shù)據(jù)結(jié)構(gòu)“圖”,再加上即將加入標(biāo)準(zhǔn)的ahet、ah_p、as_uet、ahap等等(事實(shí)上不少STL實(shí)作,如SGISL,已經(jīng)支持以上數(shù)據(jù)結(jié)構(gòu)),++對數(shù)據(jù)結(jié)構(gòu)的支持已近Boost和Boost安去哪Boost呢?英文(1),中文,可以找到一個(gè).zip或.tar.gz格式的壓縮包。完畢后,解壓到某個(gè),比如boost_1_26_0,里面一般有這么幾個(gè)子:boost、libs、more、people、status、tools,看看沒問題就行了。樣的BoostFans,希望Boost的變化,不妨使用CVS方式。首先得有一個(gè)CVS客戶端軟 適用于Windows、Linux和MacOS平臺。、安裝、啟動(dòng)三步曲。如果您習(xí)慣于傳統(tǒng)CVS令行模式,那么可在Admin→CommandLine...→Commandlinestyle="PADDING-BOTTOM:0px"style="PADDING-BOTTOM:0px"cvs-z3-d:pserver:anonymous@:/cvsroot/boostcheckoutboost勾上下面的復(fù)選框,選擇本地目標(biāo)(比如可以新建一個(gè)C:\Boost,這憑個(gè)人,再點(diǎn)擊確定即可開始更新。如果是第一次運(yùn)行,則可能需要一段時(shí)間所有文件。當(dāng)然以后更新就如果您偏好GUI模式,請選擇Admin→Preferences...,在General的EnterCVSROOT中填寫 然后在WinCvs的HOMEfolder中填寫或選擇一個(gè)本地目標(biāo),點(diǎn)擊確定。選擇View→BrowseLocation→Change...換到本地目標(biāo)后,在Create→CheckModule...→CheckoutSettings的Enterthemodulenameandpathontheserver中填寫boost,單擊確定即可。如果這一過程本,請注意各項(xiàng)設(shè)置大同小異,如前面的Authentication選擇pserver、不需要設(shè)置Useversion→處把Boost的路徑(如前面的boost_1_26_0)添加到IncludeFiles搜索路徑中。而對于BorlandCBuilder5.0,則是在Project→Options→Directories/Conditionals→IncludePath中BoostDev-C++4.0(GNUC++處免費(fèi)),可在Options→CompileOptions→Directories→C++頭文件路徑參數(shù)(BorlandC++Compiler、GNUC++是-I,VC++的cl是/I)給出Boost路徑。為不部先前有能符+的器以s庫組件或少用細(xì)請o上譯支況ru”。另外些要i的l件過庫,是平關(guān)原,如處理正表達(dá)式的eex、支pyn語言pyhn等,而構(gòu)庫的程相當(dāng)瑣,需要使用m工具(可以簡單提一下:在olsuidm_rculds 下有三個(gè)文件wi2-ordcmk、n2-cmk、n2-vacmk,分別是適用于Wndos平臺下的oradC+Coper、NUC++和sualC+的mak如果在Unx平臺,則應(yīng)使用oosudaee。用命令行工具a或mk來做出Jm執(zhí)行文件,然后再用Jam來建庫,細(xì)內(nèi)容見oosud文檔。我個(gè)人的建議是,不用急著去建構(gòu)lb或dl。真的需要使用這些庫時(shí),再make隨供文可然sm是s發(fā)方不竟部分庫須,直用。Boost如果要轉(zhuǎn)換為longdouble類型呢?標(biāo)準(zhǔn)C的庫函數(shù)atold; #include<iostream>int{usinginta=doubleb=lexical_cast<double>("123.12");}函數(shù)3,沒有任何移植性不說,還只能解決int類型(也許其他函數(shù)還可以解決long、unsignedlongsprintf(s,"%f",123.123456);且如果寫錯(cuò)了參數(shù),就會(huì)得到莫名其妙的輸出結(jié)果,調(diào)試起來可就了(我更討厭的是字符 #include<string>#include<iostream>int{usingconstdoubled=strings=boost::lexical_cast<string>(d);}#includeint{usingstd::cout;usingstd::endl;inti;i=}{return1;}return0;}sourcetypevaluecouldnotbeinterpretedastarget”這樣的信息。exa_as依賴于字符流sdsrnsream(會(huì)自動(dòng)引入頭文件4),其原理相當(dāng)簡單:把源類型 std::stringstreams;由于VisualC++6的本地化(locale)部分實(shí)現(xiàn)有問題,因此如果使用了非默認(rèn)的locale,可 boost::lexical_cast<int>("123.123");//thiswillthrow132131。 以上語句想的果是到13. 但際只到3”,因默認(rèn)情況下ssrnsam精度是6(C言庫的前輩”if留下的傳統(tǒng)。這可以說是boseia_ast的一個(gè)bug。怎么辦呢?權(quán)宜之計(jì),可以這么做:打開頭文件 temte<typenameTarget,typenameSource>Targetlexical_cast(Sourcearg){Targetresult;if(!(interpreter<<arg)||!(interpreter>>result)!(interpreter>>}小boolxclcas。當(dāng)然,lexic_snsmsnsamosos注請參考Boost文檔中的“與安裝說明(BoostDownloadandInstallation)”部分BorlandCBuilder提供了itoa,而VisualC++提供了一個(gè)功能相同的函數(shù),不過 非常感謝AndrewKoenig和BjarneStroustrup兩位的指教和幫助。最開始我的想法是,指定最大精度,加入interpreter.precision(15)之類的語句,然而又擔(dān)心移植性的問題。AndrewKoenig先生給出了非常明確的解釋:Youarequitecorrectthat15isnotportableacrossallfloating-pointimplementations.However,itisportableacrossallimplementationsthatsupportIEEEfloating-pointarithmetic,whichismostcomputersthatareincommonusetoday.Ifyouwanttodobetterthanthatyoumightconsiderusingnumeric_limits::digits10whichisthenumberofsignificantbase-10digitsthatcanbeaccurayrepresentedinadouble.(中文大意是,誠的,而且,這也是現(xiàn)今絕大部分計(jì)算機(jī)所使用的。如果想做得更好一點(diǎn),則可以考慮使用Boost中的智能指撰文BjornKarlsson翻譯曾毅最后更新:歡迎來到Boost,C++革新者出類拔萃的Boost介根據(jù)ooo++oo,SO”ooootoooo論)oooooooooot1.25.oo3Boost是C+社群中最為強(qiáng)大的一個(gè)之一。在名成員當(dāng)中,很多的人都是世界頂級的C++程了解Boost最好的方法就是瀏覽Boost庫。在這篇文章當(dāng)中,我將向你介紹Boost的智能指針(smart智能指智能指針的30秒介智能指針是指向動(dòng)態(tài)分配(堆)對象指針的類。除了能夠在適當(dāng)?shù)臅r(shí)間自動(dòng)刪除指向的對且提供交互服務(wù)。有能夠?yàn)檫@些ESP(ExtremelySmartPointers)創(chuàng)建一般智能指針的方法,這樣的一個(gè)類來自標(biāo)準(zhǔn)庫:std::auto_ptr。它是為解決資源所問題設(shè)計(jì)的,但是缺少對smart_ptr。scoped_ptr,用于處理單個(gè)對象的唯一所;與std::auto_ptr不同的是,scoped_ptr可以被復(fù)auto_ptr(newstring("Thisisminetoauto_ptrNoItsMine?(MyOwnString?);cout<<*MyOwnString<<endl;//Boom這段代碼顯然將不能編譯通過,因?yàn)樽址乃粋鹘o了NoItsMine。這不是std::auto_ptrscoped_ptr(newstring("Thisisminetokeepfor//Compilererror-thereisnocopyconstructor.scoped_ptrTryingToTakeItAnyway?scoped_ptr通過從boost::noncopyable繼承來完成這個(gè)行為(可以查看Boost.utility庫。不可typedeftuples::tupleint>ArrayTuple?;歷,并且已經(jīng)有很多關(guān)于數(shù)的文章。最重要的一個(gè)細(xì)節(jié)是數(shù)是如何被執(zhí)行的—插入, haed_pr(pne,并ponee。voidPrintIfString?(constany&{if(constshared_ptr*s=any_cast>(&Any)){cout<<**s<<}}{std::vectorStuff;shared_ptrSharedString1?(newstring("Shareme.BytheBoost.anyisanotherusefulBoostshared_ptrSharedString2?shared_ptrSharedInt1?(newint(42));shared_ptrSharedInt2?//Printthe//Thepointeesofthe//willbereleasedonleavingreturn0;}any庫提供了存儲(chǔ)所有東西的方法[2]HYPERLINK s%20and%20SettingsAdministrator桌面My%20 s新建CUJhtml20.04karlsson%22%20l"[4]。在包含類型中需要的是它們是可拷貝構(gòu)造的(CopyConsrucbe,候需要知道解開類型。any_cast是解開由any保存著的值的,any_cast與dynamic_cast的工作shared_arrayMyStrings?(newBase[20shared_ptr實(shí)有些難度了。而創(chuàng)建同時(shí)又考慮異常安全就更為了。Boost::shared_ptr這些全都做到了,下容被省略掉了,但你可以在Boost.smart_ptr當(dāng)中找到它們。temteclassshared_ptrexplicitshared_ptr(T*p=0):px(p)//fix:preventleakifnewthrowstry{pn=newlong(1);}catch(...){checked_delete(p);throw;} (pointeevoiddispose(){if(—*pn==0){checked_delete(px);deletepn;}temteshared_ptr&operator=(constshared_ptr&r)return*this;}voidshare(T*rpx,long*rpn)if(pn=rpn){//Q:whynotpx=//A:failswhenboth==//*this(bugreportedbyKenJohnson)pn=}}temte(constshared_ptr&r):px(r.px){//never++*(pn=}//neverpx(r.px){++*(pn=r.pn);}shared_ptr&operator=(constshared_ptr&r)return*this;}(pointeevoidreset(T*p=0)if(px==p)return;if(—*pn==else{//allocatenew////fix:preventleakifnewthrowstry{pn=newlong;}catch(...)//undoeffectof—*pnabove//meeteffects}//}//allocatenewreferencepx=p;}////neverT&operator*()const{return*px;//never//neverT*get()const{returnpx;{return*pn;}//neverthrowsboolunique()const{return*pn==1;}//never,問題以及他們觀點(diǎn)的幫助表示感謝(參見“來自Boost創(chuàng)始人的回答”。JimHyslop和HerbSutterI'dHoldAnythingforYouC/CUsersJournalCExpertsForum,December2001,. id=214915id=7586” CBoostThreadCBoostThread前的,如果在C++程序中要使用這些庫就必須十分;還有,每一個(gè)操作系統(tǒng)都有自己的一套Boost是由C++標(biāo)準(zhǔn)類庫工作組成員發(fā)起,致力于為C++開發(fā)新的類庫的組織?,F(xiàn)在它已許多++專家都投身于oo0開始的,并不是C線程AI特性((conobc和模板)都OSX,n3和anohao平臺下工作。創(chuàng)建線 可以方便使用==和!=進(jìn)行比較來確定它們是否是代表同一個(gè)線程;你還可以調(diào)用Listing1展示了boost::thread類的一個(gè)最簡單的用法。新建的線程只是簡單的在std::out例 #include<iostream>void{"oworld,I'ma<<}intmain(intargc,char*{boost::threadthrd(&o);}互斥避免這種情況的發(fā)生就要使用一些特殊的原始類型和操作。其中最基本的就是互斥體(mutex,mutualexclusion的縮寫。一個(gè)互斥體一次只允許一個(gè)線程共享區(qū)。當(dāng)一個(gè)線程想要和遞歸互斥體(recursivemutex)(deadock變成不可能(至少時(shí)很。直接對互斥體上鎖和對于Boost線程庫的用戶來說是不可能的。mutex類通過teypdef定義在RAII中實(shí)現(xiàn)的類型來實(shí)現(xiàn)互斥體的上鎖和。這也就是大家鎖,析構(gòu)函數(shù)對互斥體。C++保證了析構(gòu)函數(shù)一定會(huì)被調(diào)用,所以即使是有異常拋出,互這種方法保證正確的使用互斥體。然而,有一點(diǎn)必須注意:盡管ScopeLock模式可以保證互斥體被,但是它并沒有保證在異常拋出之后貢獻(xiàn)資源仍是可用的。所以就像執(zhí)行單線程程序程,因?yàn)樗鼈兊臓顟B(tài)并沒有這樣做。例 #include<iostream>struct{count(intid):id(id){void{for(inti=0;i<10;{}}int

std::cout<<id<<":<<i<<intmain(intargc,char*{boost::threadthrd1(count(1));boost::threadthrd2(count(2));return0;} #include<boost/bind.hpp>#include<iostream>voidcount(int{for(inti=0;i<10;{std::cout<<id<<":"<<i<<std::endl;}}intmain(intargc,char*{thrd1(boost::bind(&count,1));boost::threadthrd2(boost::bind(&count,2));thrd1.join();return}條件變作就必須在等待的時(shí)候?qū)⒒コ怏w,以便其他線程可以共享資源并改變其狀態(tài)。它還得 #include<boost/thread/mutex.hpp>#include<iostream>constintBUF_SIZE=10;constintITERS=100;class{:p(0),c(0),{}voidput(int{if(full==BUF_SIZE){{"Bufferisfull.<<}while(full==BUF_SIZE)}buf[p]=p=(p+1)%}int{

if(full==0){{<<}}inti=c=(c+1)%returni;}unsignedintp,c,full;intbuf[BUF_SIZE];buffervoid{for(intn=0;n<ITERS;{{std::cout<<"sending:<<n<<}}}void{for(intx=0;x<ITERS;{intn={<<n<<}}}intmain(intargc,char*{boost::threadthrd2(&writer);return0;}線程局部是返回一個(gè)指向靜態(tài)數(shù)據(jù)的指針。舉例來說,std::strtok就是不可重入的,因?yàn)樗褂渺o態(tài)變或srkr,sdokar樣必須變公共口,也意味著須代碼。另法用改變有接口而是用本地線程(hadoalsae來代替態(tài)數(shù)據(jù)(時(shí)也被為特殊程,rd-eicsa。Boost線程庫提供了智能指針boost::thread_specific_ptr來本地線程。每一個(gè)線程第一i5個(gè)seipr線程,并有0sdcut上(dcut是一個(gè)共享資源,所以通過互斥體進(jìn)行同步man線程等待這兩個(gè)線程結(jié)束后就退出。ohiir。例 #include<boost/thread/tss.hpp>#include<iostream>boost::mutexio_mutex;struct{count(intid):id(id){void{if(ptr.get()==0)for(inti=0;i<10;{}}int

std::cout<<id<<":<<*ptr<<intmain(intargc,char*{boost::threadthrd1(count(1));boost::threadthrd2(count(2));return0;}僅運(yùn)行一次的例程(ncerune)uieoeososalne,并且定boonc_aT_NN。Li6是一個(gè)使用了oscl_n的例子。其中定義了一個(gè)靜態(tài)的全局整數(shù),初始值為0;還有一個(gè)由T_NC_bosnc_a實(shí)例。n函數(shù)創(chuàng)建了兩個(gè)線程,它們都想通過傳入一個(gè)函數(shù)調(diào)用bosaloc1。ansdu。 #include<iostream>inti=0;void{}void{}intmain(intargc,char*{boost::threadthrd1(&thread);boost::threadthrd2(&thread);std::cout<<i<<std::endl;return0;}Boost線程庫的未來一版C++標(biāo)準(zhǔn)吹響了第一聲號角。成員對Boost線程庫的初稿給予了很高的評價(jià),當(dāng)然他們還會(huì)考慮其他的多線程庫。他們對在C++標(biāo)準(zhǔn)中加入對多線程的支持非常感。從這一點(diǎn)參考資料:TheBoost.ThreadsLibrarybyBillVisittheBoostwebsiteat<C++BoostAssign文檔CBoost C++Boost庫文檔索引 數(shù)據(jù)結(jié)構(gòu)Data(Brokencompilerworkarounds3Boost中已的庫什么庫用何種編譯器請看[[piler_status.html][Compiler如何,建造,安裝庫請看[[][GettingStartedPDF[.zip|.gz]Unixmanpages按字母順序庫列any-安全,泛型的容器,包含不同類型的值,KevlinHenney.array-STL風(fēng)格封裝下的定長數(shù)組,作者NicolaiJosuttis.assign-用常數(shù)或更容易方式生成的數(shù)據(jù)填充容器,作者Thorstenbindmemfn為函數(shù)/對象/指針和成員函數(shù)而被泛化的組合者,作者PeterDimov.calltraits-實(shí)現(xiàn)自動(dòng)判斷傳入?yún)?shù)的方式,作者JohnMaddock,HowardHinnantetal.-,compressedpair針對pair當(dāng)中空成員做了一些優(yōu)化,作者JohnMaddock,HowardHinnant,et-,config-幫助boost庫的開發(fā)者配置編譯器特性;不打算提供給庫用戶使用conversion各種類型間的轉(zhuǎn)化,Numericpolymorphic,lexicalcasts,DaveAbrahamsandKevlinHenney.crc循環(huán)沉余碼,DaryledatetimeDate-TimeJeff,enable_if函數(shù)模板重載時(shí)的選擇性包含,JaakkoJ?rviJeremiahWillcock,Andrewfilesystem-方便地操作文件路徑,通過 tion,和其他有用的文件系統(tǒng)操作,作format類型安全的'類似printf'格式的操作,SamuelKrempp.,functional-增強(qiáng)的函數(shù)對象配接器,作者M(jìn)arkRodgers.graph泛型圖的組件和算法,JeremySiekaUniversityofNotreDeger-能夠幫助簡化對整數(shù)類型的處理。interval-Extendstheusualarithmeticfunctionstomathematicalintervals,作者GuillaumeMelquiond,Herv′Br?nnimannandSylvainPion.incefactory,typedincefactory-Genericin-ceconstructionofcontainedobjectswithavariadicargument-list,作者FernandoCacciola.iostatesavers-保存I/O狀態(tài)來防止的數(shù)據(jù),作者Daryle tors- tor構(gòu)造框架,配接器,概念,和其他,DaveAbrahams,JeremySiek,Thomaslambda-在實(shí)際調(diào)用地點(diǎn)定義小的無名函數(shù)對象,作者JaakkoJ?rviandGarymath-在數(shù)學(xué)領(lǐng)域的幾個(gè)貢獻(xiàn),variousmonfactor-最大公約數(shù)和最小公倍數(shù),DaryleWalker.math/octonion-Octonions,作者HubertHolin.math/quaternionQuaternions,Hubertmath/specialfunctions-數(shù)學(xué)方面的函數(shù)比如atanh,sinc,和sinhc,作者HubertHolin.minmax-標(biāo)準(zhǔn)庫擴(kuò)展,用于同時(shí)進(jìn)行min/max和min/max元素計(jì)算,作者Hervémpl模板元編程框架,用于編譯時(shí)計(jì)算,序列化和元函數(shù)類,AlekseyGurtovoy.multiarray-數(shù)組的容器和配接器,作者RonGarcia.multiindex-提供對可重復(fù)鍵值STL兼容容器的存取接口,JoaquínMLópezMu?oz.numeric/conversion-優(yōu)化的基于策略的數(shù)值變換,作者FernandoCacciola.operators-使算法類和迭代器容易的模板,DaveAbrahamsJeremySiek.optional-對可選項(xiàng)值的可識別聯(lián)合包裹,作者FernandoCacciola.pool-內(nèi)存池管理,Stevepreprocessor-預(yù)處理元編程工具,包含重復(fù)和遞歸,VesaKarvonenPaulMgram_options-通過命令行,配置文件和其他來源來存取配置參數(shù),作者VladimirPpertymap-Conceptsdefininginterfaceswhichmapkeyobjectstovalueobjects,作者Jeremypython-C++PythonDaveAbrahams.random-隨機(jī)數(shù)生成的完整系統(tǒng),作者JensMaurer.range-new根基,其為建于newi tor概念之上的泛型計(jì)算,作者ThorstenOttosen.rational-有理數(shù)類,作者PaulMoore.ref-一個(gè)工具庫,用于傳遞到泛型函數(shù),作者JaakoJ?rvi,PeterDimov,DougGregor,regex-正則表達(dá)式庫,JohnMaddockserializationSerializationforpersistenceandmarshalling,RobertRameysignals-被管理的信號和郵槽回調(diào)的實(shí)現(xiàn),作者DougGregor.smartptr-五個(gè)智能指針類模板,作者GregColvin,BemanDawes,PeterDimov,Darinstaticassert-(編譯時(shí)斷言),JohnspiritLL分析的框架,在嵌入式C++中根據(jù)EBNF規(guī)則對文件進(jìn)行分析,JoeldeGuzmanandteam.stringalgo-字符串算法庫,PavolDrobatest-支持簡單程序測試,完整單元測試,和程序執(zhí)行,作者GennadiyRozental.thread-跨平臺的線程實(shí)現(xiàn)。PortableC++multi-threading,作者WilliamKempf.timer-Eventtimer,progresstimer,andprogressdisyclasses,作者BemanDawes.tokenizer-把字符串或其他字符序列分解成一系列標(biāo)記(tokens),JohnBandela.tribool-3種狀態(tài)的boolean類型庫,作者DougGregor.tupleEasedefinitionoffunctionsreturningmultiplevaluesandmore,JaakkoJ?rvi.typetraits-類型的基本屬性的模板,作者JohnMaddock,SteveCleary,etal.uBLAS基本線性代數(shù),用于矩陣操作,JoergWalterandMathiasutility-noncopyablechecked_delete()checked_array_delete()next(),prior()函數(shù)模板,加base-from-memberidiom,作者DaveAbrahams等.valueinitialized-為統(tǒng)一的語法的值初始化的包裹,作者FernandoCacciola,基于DavidAbrahams的思想.variant-安全,泛型,基于棧的,不同于聯(lián)合容器,EricFriedmanandItay按庫列字符串和文本處理Stringandtextconversion/lexicalcastlexical_castKevlinformat-'類似printf'格式的操作,SamuelKrempp.regex-正則表達(dá)式庫,作者JohnMaddock.spiritLL分析的框架,在嵌入式C++中根據(jù)EBNF規(guī)則對文件進(jìn)行分析,JoeldeGuzmanandteam.tokenizer-把字符串或其他字符序列分解成一系列標(biāo)記(tokens),JohnBandela.stringalgo-字符串算法庫,作者PavolDroba.容器arraySTL風(fēng)格封裝下的定長數(shù)組,Nicolaidynamicbitset-std::bitset的動(dòng)態(tài)長度版本,作者JeremySiek和ChuckAllison.graph-泛型圖的組件和算法,JeremySiekaUniversityofNotreDameteam.multiarray-數(shù)組的容器和配接器,作者RonGarcia.multiindex-提供對可重復(fù)鍵值STL兼容容器的存取接口,作者JoaquínMLópezMu?pertymapConceptsdefininginterfaceswhichmapkeyobjectstovalueobjects,Jeremyvariant-安全,泛型,基于棧的,不同于聯(lián)合容器,EricFriedmanandItay迭代器(Igraph-泛型圖的組件和算法,JeremySiekaUniversityofNotreDame tors- tor構(gòu)造框架,配接器,概念,和其他,作者DaveAbrahams,JeremySiek,Thomasoperators-使算法類和迭代器容易的模板,DaveAbrahamsJeremytokenizer把字符串或其他字符序列分解成一系列標(biāo)記(tokens),John算法Algorithmsgraph-泛型圖的組件和算法,JeremySiekaUniversityofNotreDameminmax-標(biāo)準(zhǔn)庫擴(kuò)展,用于同時(shí)進(jìn)行min/max和min/max元素計(jì)算,作者Hervéstringalgo-字符串算法庫,PavolDrobautility-next(),prior()函數(shù)模板,DaveAbrahamsandrange-new根基,其為建于new tor概念之上的泛型計(jì)算,作者Thorsten函數(shù)對象和高階編程(Functionobjectsandhigher-orderbindmemfn-為函數(shù)/對象/指針和成員函數(shù)而被泛化的組合者,PeterDimov.function-為延期調(diào)用和回調(diào)的函數(shù)對象的包裹,作者DougGregor.functional-增強(qiáng)的函數(shù)對象配接器,Marklambda-在實(shí)際調(diào)用地點(diǎn)定義小的無名函數(shù)對象,JaakkoJ?rviGaryref-一個(gè)工具庫,用于傳遞到泛型函數(shù),作者JaakoJ?rvi,PeterDimov,DougGregor,signals被管理的信號和郵槽回調(diào)的實(shí)現(xiàn),DougGregor.resultof-確定函數(shù)調(diào)用表達(dá)式的類型.泛型編程(Genericcalltraits-實(shí)現(xiàn)自動(dòng)判斷傳入?yún)?shù)的方式,JohnMaddock,HowardHinnantetal.conceptcheck-泛型編程的工具,作者JeremySiek.enableif-函數(shù)模板重載時(shí)的選擇性包含,JaakkoJ?rviJeremiahWillcock,Andrewin_ce_factory,typed_in_ce_factory-Genericin-ceconstructionofcontainedobjectswithavariadicargument-list,作者FernandoCacciola.operators-使算法類和迭代器容易的模板,DaveAbrahamsJeremypropertymapConceptsdefininginterfaceswhichmapkeyobjectstovalueobjects,Jeremystatic_assert-(編譯時(shí)斷言),Johntypetraits-類型的基本屬性的模板,JohnMaddock,SteveClearyetmpl模板元編程框架,用于編譯時(shí)計(jì)算,序列化和元函數(shù)類,AlekseyGurtovoy.static_assert-靜態(tài)斷言(編譯時(shí)斷言),作者JohnMaddock.type_traits類型的基本屬性的模板,JohnMaddock,SteveCleary,et預(yù)處理元編程(Preprocessorpreprocessor預(yù)處理元編程工具,包含重復(fù)和遞歸,VesaKarvonenPaul并發(fā)編程(Concurrentthread-輕便的C++多線程庫,William數(shù)學(xué)和數(shù)值計(jì)算(Mathandmath-在數(shù)學(xué)領(lǐng)域的幾個(gè)貢獻(xiàn),variousconversion/numeric_cast-numeric_cast類模板,作者KevlinHenney.numeric/conversion-優(yōu)化的基于策略的數(shù)值變換,FernandoCeger-能夠幫助簡化對整數(shù)類型的處理。interval-Extendstheusualarithmeticfunctionstomathematicalintervals,作者GuillaumeMelquiond,HervéBr?nnimannandSylvainPion.mon_factor最大公約數(shù)和最小公倍數(shù),DaryleWalker.math/octonion-Octonions,作者HubertHolin.math/quaternionQuaternions,Hubertmath/specialfunctions-atanh,sinc,sinhc,HubertHolin.multiarray-數(shù)組的容器和配接器,作者RonGarcia.operators-使算法類和迭代器容易的模板,DaveAbrahamsJeremySiek.random-隨機(jī)數(shù)生成的完整系統(tǒng),作者JensMaurer.rational-有理數(shù)類,PauluBLAS基本線性代數(shù),用于矩陣操作,JoergWalterandMathias糾錯(cuò)和測試Correctnessandconcep

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論