教案源碼剖析sgi std straits_第1頁
教案源碼剖析sgi std straits_第2頁
教案源碼剖析sgi std straits_第3頁
教案源碼剖析sgi std straits_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

G++2.91.57,cygnus\cygwin-b20\include\g++\std\straits.h完整列表

//Charactertraitstem teforthe-*-C++-*-stringclasses.

//Copyright(C)1994 SoftwareFoundation

//ThisfileispartoftheGNUANSIC++Library.Thislibraryis

//software;youcanredistributeitand/ormodifyitunderthe

//termsoftheGNUGeneralPublicLicenseaspublishedbythe

//SoftwareFoundation;eitherversion2,or(atyouroption)

//anylaterversion.

//Thislibraryisdistributedinthehopethatitwillbeuseful,

//butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof

//MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.Seethe

//GNUGeneralPublicLicenseformoredetails.

//YoushouldhavereceivedacopyoftheGNUGeneralPublicLicense

//alongwiththislibrary;seethefileCOPYING.Ifnot,writetothe

//SoftwareFoundation,59Templece-Suite330,Boston,MA02111-1307,USA.

//Asaspecialexception,ifyoulinkthislibrarywithfiles

//compiledwithaGNUcompilertoproduceanexecutable,thisdoesnotcause

//theresultingexecutabletobecoveredbytheGNUGeneralPublicLicense.

//Thisexceptiondoesnothoweverinvalidateanyotherreasonswhy

//theexecutablefilemightbecoveredbytheGNUGeneralPublicLicense.

//WrittenbyJasonMerrillbaseduponthespecificationbyTakanoriAdachi

//inANSIX3J16/94-0013R2.

#ifndef#define

STRING_CHAR_TRAITS

STRING_CHAR_TRAITS

#ifdefGNUG

//Forstring_char_traits<char>#pragmainterface"std/straits.h"#endif

#include<cstddef>

//PJSTL使用char_traits符號,定義於vc6\include\iosfwd,

//temte<class_E>

//structchar_traits{

// typedef_Echar_type;

//

//SGISTL使用string_char_traits符號,定義於std\straits.h(本檔)

//

extern"C++"{temte<classcharT>

structstring_char_traits{

typedefcharTchar_type;//foruserstoacquirethebasiccharactertype

//constraints

staticvoidassign(char_type&c1,constchar_type&c2)

{c1=c2;}

staticbooleq(constchar_type&c1,constchar_type&c2)

{return(c1==c2);}

staticboolne(constchar_type&c1,constchar_type&c2)

{return!(c1==c2);}

staticboollt(constchar_type&c1,constchar_type&c2)

{return(c1<c2);}

staticchar_typeeos(){returnchar_type();}//thenullcharacterstaticboolis_del(char_typea){return0;}

//characteristicfunctionfordelimitersofcharT

//speed-upfunctions

staticintcompare(constchar_type*s1,constchar_type*s2,size_tn)

{

size_ti;

for(i=0;i<n;++i)if(ne(s1[i],s2[i]))

returnlt(s1[i],s2[i])?-1:1;

return0;

}

staticsize_tlength(constchar_type*s)

{

size_tl=0;

while(ne(*s++,eos()))

++l;

returnl;

}

staticchar_type*copy(char_type*s1,constchar_type*s2,size_tn)

{

for(;n--;)

assign(s1[n],s2[n]);returns1;

}

staticchar_type*move(char_type*s1,constchar_type*s2,size_tn)

{

char_typea[n];size_ti;

for(i=0;i<n;++i)assign(a[i],s2[i]);

for(i=0;i<n;++i)

assign(s1[i],a[i]);returns1;

}

staticchar_type*set(char_type*s1,constchar_type&c,size_tn)

{

for(;n--;)

assign(s1[n],c);returns1;

}

};

classistream;classostream;#include<cctype>#include<cstring>

structstring_char_traits<char>{typedefcharchar_type;

staticvoidassign(char_type&c1,constchar_type&c2)

{c1=c2;}

staticbooleq(constchar_type&c1,constchar_type&c2)

{return(c1==c2);}

staticboolne(constchar_type&c1,constchar_type&c2)

{return(c1!=c2);}

staticboollt(constchar_type&c1,constchar_type&c2)

{return(c1<c2);}

staticchar_typeeos(){return0;}

staticboolis_del(char_typea){returnisspace(a);}

staticintcompare(constchar_type*s1,constchar_type*s2,size_tn)

{returnmemcmp(s1,s2,n);}

staticsize_tlength(constchar_type*s)

{returnstrlen(s);}

staticchar_type*copy(char_type*s1,constchar_type*s2,size_tn)

{return(char_type*)memcpy(s1,s2,n);}

staticchar_type*move(char_type*s1,constchar_type*s2,size_tn)

{return(char_type*)memmove(s1,s2,n);}

staticchar_type*set(char_type*s1,constchar_type&c,size_tn)

{return(char_type*)memset(s1,c,n);}

};

#if0

#include<cwctype>

structstring_char_traits<wchar_t>{typedefwchar_tchar_type;

staticvoidassign(char_type&c1,constchar_type&c2)

{c1=c2;}

staticbooleq(constchar_type&c1,constchar_type&c2)

{return(c1==c2);}

staticboolne(constchar_type&c1,constchar_type&c2)

{return(c1!=c2);}

staticboollt(constchar_type&c1,constchar_type&c2)

{return(c1<c2);}

staticchar_typeeos(){return0;}

staticboolis_del(char_typea){returniswspace(a);}

staticintcompare(constchar_type*s1,constchar_type*s2,size_tn)

{returnwmemcmp(s1,s2,n);}

staticsize_tlength(constchar_type*s)

{retur

溫馨提示

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

評論

0/150

提交評論