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

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

?? porting.texi

?? linux下編程用 編譯軟件
?? TEXI
?? 第 1 頁 / 共 2 頁
字號:
not have to include @file{<ctype.h>} in this header; it will always beincluded before @file{ctype_base.h} is included.The next file to write is @file{ctype_noninline.h}, which also doesnot require include guards.  This file defines a few member functionsthat will be included in @file{include/bits/locale_facets.h}.  The firstfunction that must be written is the @code{ctype<char>::ctype}constructor.  Here is the IRIX example:@examplectype<char>::ctype(const mask* __table = 0, bool __del = false,       size_t __refs = 0)  : _Ctype_nois<char>(__refs), _M_del(__table != 0 && __del),     _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.host}, 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{_GLIBCXX_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一区二区三区免费野_久草精品视频
精品国产乱码久久久久久闺蜜| 久久久久国产精品麻豆| 日本免费在线视频不卡一不卡二| 久久夜色精品国产欧美乱极品| 欧美日韩成人高清| 91年精品国产| 五月激情综合网| 亚洲777理论| 亚洲免费看黄网站| 婷婷成人综合网| 91丝袜美女网| 精品在线观看视频| 国产精品18久久久久| 日韩精品一区二区三区中文不卡| 日韩精品一卡二卡三卡四卡无卡 | 国产视频在线观看一区二区三区| 美女在线观看视频一区二区| 日韩欧美精品在线视频| 国产一区二区福利视频| 久久你懂得1024| jlzzjlzz亚洲女人18| 国产精品美女久久久久aⅴ| 成人18视频在线播放| 亚洲天堂福利av| 欧美丝袜丝交足nylons图片| 樱花影视一区二区| 欧美日韩免费不卡视频一区二区三区| 亚洲v日本v欧美v久久精品| 欧美日本在线播放| 狠狠网亚洲精品| 亚洲欧美在线aaa| 欧美在线观看一区| 国产精品家庭影院| 亚洲女同ⅹxx女同tv| 国产成人在线视频播放| 99re热这里只有精品视频| 日韩欧美在线网站| 亚洲va在线va天堂| 日本v片在线高清不卡在线观看| 美国精品在线观看| 欧美在线一二三| 精品国产一区二区在线观看| 五月天一区二区三区| 色综合久久综合网欧美综合网| 亚洲丝袜精品丝袜在线| 91麻豆精品国产综合久久久久久| 国产高清精品网站| 久久综合九色综合欧美亚洲| 国产精品久久久久久户外露出 | 亚洲va国产va欧美va观看| 美女视频免费一区| 91污在线观看| 国产亚洲一区二区三区四区| 亚洲婷婷综合久久一本伊一区 | 欧美精品一区在线观看| 亚洲成av人片www| 色老综合老女人久久久| 国产精品嫩草99a| 成人久久久精品乱码一区二区三区| 激情综合一区二区三区| 国产精品资源在线| 在线一区二区观看| 亚洲国产精品av| 99久久精品国产精品久久| 丝袜美腿亚洲综合| 亚洲午夜国产一区99re久久| 五月婷婷综合在线| 久久精品视频免费| 热久久一区二区| 五月天视频一区| 亚洲午夜激情网页| 日韩精品一二三| 亚洲成人精品一区| 亚洲国产综合91精品麻豆| 欧美在线免费播放| 日本韩国视频一区二区| 色婷婷av一区二区三区gif| 欧美体内she精高潮| 在线一区二区观看| 日本道色综合久久| 极品少妇一区二区三区精品视频| 日韩欧美高清dvd碟片| 一本大道久久a久久综合婷婷| 久久综合九色综合欧美就去吻| 丁香五精品蜜臀久久久久99网站 | 国产人成亚洲第一网站在线播放| 国产精品久久久久婷婷| 日韩在线一二三区| 国产一区二区视频在线| 日一区二区三区| 一区二区三区久久久| 国产精品久久久久影视| 亚洲精品一区二区三区蜜桃下载| 欧美日韩免费不卡视频一区二区三区| 欧美高清一级片在线| 日本三级亚洲精品| 国产精品久久久久影院亚瑟| 日韩一区二区免费高清| 久久影院电视剧免费观看| 中文字幕乱码日本亚洲一区二区| 国产精品久久久久永久免费观看 | 国产亚洲欧美一区在线观看| 久久美女高清视频| 国产精品国产成人国产三级| 亚洲激情网站免费观看| 蜜臀精品久久久久久蜜臀| 国产精品一级在线| 在线一区二区视频| 日韩欧美国产电影| 国产精品国产三级国产| 日韩精品电影一区亚洲| 国内成+人亚洲+欧美+综合在线| 国产成人精品影视| 在线观看av一区二区| 欧美大肚乱孕交hd孕妇| 亚洲少妇中出一区| 裸体一区二区三区| 色综合久久综合网欧美综合网| 欧美一级日韩免费不卡| 亚洲桃色在线一区| 精品在线视频一区| 欧美亚洲国产一区在线观看网站| 欧美电影免费观看高清完整版在线 | 午夜精品一区二区三区免费视频 | 欧美在线一区二区三区| 91精品欧美一区二区三区综合在 | 成人av先锋影音| 欧美天堂一区二区三区| 久久综合九色欧美综合狠狠| 亚洲一区二区三区四区的| 成人久久视频在线观看| 欧美www视频| 日韩理论片网站| 1024成人网| 黄色小说综合网站| 欧美午夜理伦三级在线观看| 日欧美一区二区| 亚洲一线二线三线视频| 午夜婷婷国产麻豆精品| 欧美亚洲一区三区| 国产精品网曝门| 久久国产精品无码网站| 欧美唯美清纯偷拍| ●精品国产综合乱码久久久久| 九九九精品视频| 欧美日韩国产免费| 一区二区免费看| 成人一级黄色片| 久久精品综合网| 久久99精品久久只有精品| 欧美无砖砖区免费| 一区二区三区中文字幕精品精品| 成人av影院在线| 国产精品激情偷乱一区二区∴| 国产美女视频91| 久久久久久日产精品| 麻豆精品一区二区三区| 这里只有精品免费| 日韩一区二区中文字幕| 国产经典欧美精品| 久久久久久免费网| 91丨九色丨尤物| 亚洲国产美女搞黄色| 91精品国产综合久久国产大片| 亚洲高清免费视频| 日韩欧美国产三级电影视频| 国产成人免费视频一区| 亚洲免费色视频| 日韩精品一区二区三区蜜臀 | 欧美va在线播放| 久久不见久久见免费视频1| 久久精品亚洲乱码伦伦中文| 97成人超碰视| 国产一区二区不卡老阿姨| 成人欧美一区二区三区| 国产清纯白嫩初高生在线观看91 | 欧美主播一区二区三区| 亚洲一区免费在线观看| 精品视频1区2区| 韩国在线一区二区| 亚洲123区在线观看| 久久精品人人做人人综合| 一区二区三区在线免费观看| 风间由美一区二区三区在线观看| 亚洲精品国产品国语在线app| 亚洲bt欧美bt精品777| 911精品国产一区二区在线| 青青草97国产精品免费观看 | 亚洲日本在线天堂| 在线这里只有精品| 日韩中文字幕1| xf在线a精品一区二区视频网站| 成人在线综合网| 一区二区三区精品| av福利精品导航| 91在线视频免费观看| av一区二区三区在线| 不卡一区二区中文字幕| 不卡av电影在线播放| 91视频国产观看|