亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? porting.texi

?? gcc3.2.1源代碼
?? TEXI
?? 第 1 頁 / 共 2 頁
字號:
    _M_toupper(NULL),    _M_tolower(NULL),    _M_ctable(NULL),     _M_table(!__table             ? (const mask*) (__libc_attr._ctype_tbl->_class + 1)             : __table)   @{ @}@end example@noindentThere are two parts of this that you might choose to alter. The first,and most important, is the line involving @code{__libc_attr}.  That isIRIX system-dependent code that gets the base of the table mappingcharacter codes to attributes.  You need to substitute code that obtainsthe address of this table on your system.  If you want to use youroperating system's tables to map upper-case letters to lower-case, andvice versa, you should initialize @code{_M_toupper} and@code{_M_tolower} with those tables, in similar fashion.Now, you have to write two functions to convert from upper-case tolower-case, and vice versa.  Here are the IRIX versions:@examplecharctype<char>::do_toupper(char __c) const@{ return _toupper(__c); @}charctype<char>::do_tolower(char __c) const@{ return _tolower(__c); @}@end example@noindentYour C library provides equivalents to IRIX's @code{_toupper} and@code{_tolower}.  If you initialized @code{_M_toupper} and@code{_M_tolower} above, then you could use those tables instead.Finally, you have to provide two utility functions that convert stringsof characters.  The versions provided here will always work -- but youcould use specialized routines for greater performance if you havemachinery to do that on your system:@exampleconst char*ctype<char>::do_toupper(char* __low, const char* __high) const@{  while (__low < __high)    @{      *__low = do_toupper(*__low);      ++__low;    @}  return __high;@}const char* ctype<char>::do_tolower(char* __low, const char* __high) const@{  while (__low < __high)    @{      *__low = do_tolower(*__low);      ++__low;    @}  return __high;@}@end exampleYou must also provide the @file{ctype_inline.h} file, whichcontains a few more functions.  On most systems, you can just copy@file{config/os/generic/ctype_inline.h} and use it on your system.In detail, the functions provided test characters for particularproperties; they are analogous to the functions like @code{isalpha} and@code{islower} provided by the C library.The first function is implemented like this on IRIX:@exampleboolctype<char>::is(mask __m, char __c) const throw()@{ return (_M_table)[(unsigned char)(__c)] & __m; @}@end example@noindentThe @code{_M_table} is the table passed in above, in the constructor.This is the table that contains the bitmasks for each character.  Theimplementation here should work on all systems.The next function is:@exampleconst char*ctype<char>::is(const char* __low, const char* __high, mask* __vec) const throw()@{  while (__low < __high)    *__vec++ = (_M_table)[(unsigned char)(*__low++)];  return __high;@}@end example@noindentThis function is similar; it copies the masks for all the charactersfrom @code{__low} up until @code{__high} into the vector given by@code{__vec}.The last two functions again are entirely generic:@exampleconst char*ctype<char>::scan_is(mask __m, const char* __low, const char* __high) const throw()@{  while (__low < __high && !this->is(__m, *__low))    ++__low;  return __low;@}const char*ctype<char>::scan_not(mask __m, const char* __low, const char* __high) const throw()@{  while (__low < __high && this->is(__m, *__low))    ++__low;  return __low;@}@end example@c ---------------------------------------------------------------------@c Thread safety@c ---------------------------------------------------------------------@node Thread safety@chapter Thread safetyThe C++ library string functionality requires a couple of atomicoperations to provide thread-safety.  If you don't take any specialaction, the library will use stub versions of these functions that arenot thread-safe.  They will work fine, unless your applications aremulti-threaded.If you want to provide custom, safe, versions of these functions, thereare two distinct approaches.  One is to provide a version for your CPU,using assembly language constructs.  The other is to use thethread-safety primitives in your operating system.  In either case, youmake a file called @file{atomicity.h}, and the variable@code{ATOMICITYH} must point to this file.If you are using the assembly-language approach, put this code in@file{config/cpu/<chip>/atomicity.h}, where chip is the name ofyour processor (@pxref{CPU}).  No additional changes are necessary tolocate the file in this case; @code{ATOMICITYH} will be set by default.If you are using the operating system thread-safety primitives approach,you can also put this code in the same CPU directory, in which case no morework is needed to locate the file.  For examples of this approach,see the @file{atomicity.h} file for IRIX or IA64.Alternatively, if the primitives are more closely related to the OSthan they are to the CPU, you can put the @file{atomicity.h} file inthe @ref{Operating system} directory instead.  In this case, you mustedit @file{configure.target}, and in the switch statement that handlesoperating systems, override the @code{ATOMICITYH} variable to point tothe appropriate @code{os_include_dir}.  For examples of this approach,see the @file{atomicity.h} file for AIX.With those bits out of the way, you have to actually write@file{atomicity.h} itself.  This file should be wrapped in aninclude guard named @code{_BITS_ATOMICITY_H}.  It should define onetype, and two functions.  The type is @code{_Atomic_word}.  Here is the version used on IRIX:@exampletypedef long _Atomic_word;@end example@noindentThis type must be a signed integral type supporting atomic operations.If you're using the OS approach, use the same type used by your system'sprimitives.  Otherwise, use the type for which your CPU provides atomicprimitives.Then, you must provide two functions.  The bodies of these functionsmust be equivalent to those provided here, but using atomic operations:@examplestatic inline _Atomic_word__attribute__ ((__unused__))__exchange_and_add (_Atomic_word* __mem, int __val)@{  _Atomic_word __result = *__mem;  *__mem += __val;  return __result;@}static inline void__attribute__ ((__unused__))__atomic_add (_Atomic_word* __mem, int __val)@{  *__mem += __val;@}@end example@c ---------------------------------------------------------------------@c Numeric limits@c ---------------------------------------------------------------------@node Numeric limits@chapter Numeric limitsThe C++ library requires information about the fundamental data types,such as the minimum and maximum representable values of each type.You can define each of these values individually, but it is usuallyeasiest just to indicate how many bits are used in each of the datatypes and let the library do the rest.  For information about themacros to define, see the top of @file{include/bits/std_limits.h}.If you need to define any macros, you can do so in @file{os_defines.h}.However, if all operating systems for your CPU are likely to use thesame values, you can provide a CPU-specific file instead so that youdo not have to provide the same definitions for each operating system.To take that approach, create a new file called @file{cpu_limits.h} inyour CPU configuration directory (@pxref{CPU}).@c ---------------------------------------------------------------------@c Libtool@c ---------------------------------------------------------------------@node Libtool@chapter LibtoolThe C++ library is compiled, archived and linked with libtool.Explaining the full workings of libtool is beyond the scope of thisdocument, but there are a few, particular bits that are necessary forporting.Some parts of the libstdc++-v3 library are compiled with the libtool@code{--tags CXX} option (the C++ definitions for libtool).  Therefore,@file{ltcf-cxx.sh} in the top-level directory needs to have the correctlogic to compile and archive objects equivalent to the C version of libtool,@file{ltcf-c.sh}.  Some libtool targets have definitions for C but notfor C++, or C++ definitions which have not been kept up to date.The C++ run-time library contains initialization code that needs to berun as the library is loaded.  Often, that requires linking in specialobject files when the C++ library is built as a shared library, ortaking other system-specific actions.The libstdc++-v3 library is linked with the C version of libtool, eventhough it is a C++ library.  Therefore, the C version of libtool needs toensure that the run-time library initializers are run.  The usual way todo this is to build the library using @code{gcc -shared}.If you need to change how the library is linked, look at@file{ltcf-c.sh} in the top-level directory.  Find the switch statementthat sets @code{archive_cmds}.  Here, adjust the setting for youroperating system.@c ---------------------------------------------------------------------@c GFDL@c ---------------------------------------------------------------------@include fdl.texi@c ---------------------------------------------------------------------@c Epilogue@c ---------------------------------------------------------------------@contents@bye

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品久久人人爱蜜臀| 国产人成一区二区三区影院| 国产福利一区二区三区| 一区二区视频在线| 精品国产乱子伦一区| 色一情一乱一乱一91av| 国产精品白丝jk白祙喷水网站| 亚洲愉拍自拍另类高清精品| 欧美激情一区二区三区在线| 日韩三级中文字幕| 欧美综合欧美视频| 972aa.com艺术欧美| 激情欧美一区二区三区在线观看| 亚洲综合精品自拍| 18欧美乱大交hd1984| 久久久国产综合精品女国产盗摄| 91精品久久久久久久久99蜜臂| 99re视频精品| 成人黄色电影在线| 国产一区二区剧情av在线| 蜜臀国产一区二区三区在线播放 | 在线观看国产精品网站| 丰满少妇在线播放bd日韩电影| 久久精品国产一区二区三| 婷婷中文字幕综合| 亚洲成人黄色影院| 亚洲一区二区欧美日韩| 久久久久久久免费视频了| 久国产精品韩国三级视频| 亚洲综合在线五月| 亚洲黄色尤物视频| 亚洲裸体xxx| 亚洲色图制服诱惑| 亚洲视频电影在线| 一区二区在线观看视频| 亚洲精品少妇30p| 亚洲精品你懂的| 一区二区在线看| 亚洲综合色区另类av| 亚洲一区二区五区| 亚洲小说欧美激情另类| 亚洲高清在线精品| 日韩国产欧美在线播放| 天堂久久久久va久久久久| 天天色综合成人网| 青青草国产精品97视觉盛宴| 日本不卡一区二区| 麻豆一区二区在线| 国产在线精品一区二区不卡了 | 91麻豆精品久久久久蜜臀| 欧美日韩在线精品一区二区三区激情| 一本色道久久综合亚洲精品按摩| 91久久精品国产91性色tv| 欧美日韩dvd在线观看| 欧美一级黄色大片| 精品久久久久久综合日本欧美| 久久综合久久99| 国产精品伦理在线| 伊人夜夜躁av伊人久久| 日韩电影免费一区| 国产麻豆午夜三级精品| av欧美精品.com| 欧美日韩三级视频| 久久品道一品道久久精品| 国产精品久久久久久久久搜平片| 亚洲女与黑人做爰| 欧美96一区二区免费视频| 国产酒店精品激情| 91浏览器入口在线观看| 3d成人动漫网站| 日本一区二区免费在线 | 午夜成人免费视频| 韩国毛片一区二区三区| 成人国产在线观看| 欧美日韩成人一区| 久久精品男人的天堂| 一个色综合av| 精品一区二区免费在线观看| 成人黄色软件下载| 日韩三级.com| 一区二区三区中文在线| 蜜桃视频一区二区三区在线观看| 成人午夜免费av| 欧美精品v国产精品v日韩精品| 国产亚洲精品bt天堂精选| 一区二区三区高清在线| 久久99精品一区二区三区| 不卡大黄网站免费看| 欧美一区二区视频观看视频| 国产精品网站在线播放| 免费观看91视频大全| 欧美v国产在线一区二区三区| 亚洲精品自拍动漫在线| 国产乱码精品一区二区三区五月婷| 在线观看免费一区| 欧美激情一区二区三区全黄 | 亚洲一区二区在线免费观看视频 | 免费久久99精品国产| 97久久精品人人澡人人爽| 日韩精品中文字幕一区 | 国产麻豆一精品一av一免费 | 亚洲综合男人的天堂| 成人激情小说网站| 精品国产91洋老外米糕| 亚洲一区二区三区四区在线| 不卡一区二区在线| xvideos.蜜桃一区二区| 日韩精品五月天| 欧美午夜视频网站| 亚洲欧美在线视频| 国产福利精品一区二区| 日韩三级在线免费观看| 亚洲国产精品一区二区尤物区| 成人免费福利片| 久久久精品黄色| 久久er精品视频| 日韩亚洲电影在线| 日韩激情一区二区| 欧美日韩在线精品一区二区三区激情| 国产精品乱码一区二三区小蝌蚪| 麻豆成人久久精品二区三区小说| 欧美久久一二区| 亚洲五月六月丁香激情| 欧美性三三影院| 亚洲免费在线看| 91麻豆福利精品推荐| 136国产福利精品导航| 成人h精品动漫一区二区三区| 国产性色一区二区| 国产成人在线网站| 欧美国产日韩精品免费观看| 国产乱码精品一区二区三| 欧美精品一区二区三区视频| 久久成人久久鬼色| 精品成人在线观看| 国产在线一区二区| 国产校园另类小说区| 国产·精品毛片| 国产精品久久久久久久久搜平片| 菠萝蜜视频在线观看一区| 国产精品久久久久婷婷二区次| 成人黄页在线观看| 悠悠色在线精品| 欧美三电影在线| 奇米综合一区二区三区精品视频| 欧美一区二区在线观看| 国产一区中文字幕| 国产精品久久久久影院亚瑟| 色综合色综合色综合色综合色综合 | 国产色一区二区| 成人精品在线视频观看| 国产精品色一区二区三区| www.激情成人| 亚洲宅男天堂在线观看无病毒| 欧美精品久久一区二区三区| 日本不卡视频在线观看| 国产亚洲一区二区三区四区| 成人网在线播放| 亚洲综合在线第一页| 欧美一区二区三区不卡| 国产一区二区美女诱惑| 亚洲女厕所小便bbb| 在线不卡欧美精品一区二区三区| 久久精品国产网站| 国产精品成人一区二区艾草| 91国产福利在线| 久久国产精品一区二区| 国产婷婷一区二区| 在线观看一区二区精品视频| 蜜桃视频在线一区| 日韩一区欧美小说| 欧美一级黄色大片| 99久久免费视频.com| 日韩高清一区二区| 欧美国产一区视频在线观看| 91久久精品一区二区三区| 寂寞少妇一区二区三区| 亚洲视频中文字幕| 日韩欧美视频在线| 91视频一区二区| 看电视剧不卡顿的网站| 一区视频在线播放| 日韩精品一区二区三区三区免费 | 91国偷自产一区二区三区观看| 久草在线在线精品观看| 亚洲欧美偷拍另类a∨色屁股| 日韩欧美二区三区| av成人动漫在线观看| 蜜臀久久99精品久久久画质超高清| 国产精品久久影院| 欧美精品一区二区三区蜜桃视频 | 99riav一区二区三区| 国产综合久久久久久久久久久久| 亚洲男人的天堂在线aⅴ视频| 日韩免费电影网站| 欧美日韩一区三区四区| av中文字幕在线不卡| 精品一区二区三区av| 日韩一区欧美二区| 亚洲天堂网中文字|