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

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

?? porting.texi

?? 俄羅斯高人Mamaich的Pocket gcc編譯器(運行在PocketPC上)的全部源代碼。
?? TEXI
?? 第 1 頁 / 共 2 頁
字號:
elements in that table.  If you don't mind taking a minor performancepenalty, or if your library doesn't implement @code{toupper} and@code{tolower} in this way, you can pick any pointer-to-integer type,but you must still define the type.The enumeration should give definitions for all the values in the aboveexample, using the values from your native @file{<ctype.h>}.  They canbe given symbolically (as above), or numerically, if you prefer.  You donot 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.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一区二区三区免费野_久草精品视频
国产精品一卡二卡在线观看| 久久精品亚洲精品国产欧美 | av中文字幕在线不卡| 久久蜜臀中文字幕| 国产91综合网| 国产精品成人免费精品自在线观看| 国产经典欧美精品| 亚洲人妖av一区二区| 在线观看中文字幕不卡| 亚洲成人7777| 日韩久久免费av| 欧美在线小视频| 五月婷婷综合激情| 日韩美女视频一区二区在线观看| 国产黑丝在线一区二区三区| 亚洲日穴在线视频| 91麻豆精品国产| 国产精品18久久久久久vr| 中文字幕亚洲成人| 欧美日韩国产区一| 国产精品中文有码| 一区二区三区四区乱视频| 欧美一卡二卡三卡| bt欧美亚洲午夜电影天堂| 亚洲444eee在线观看| 国产欧美日韩亚州综合| 欧美在线一区二区| 高清成人免费视频| 婷婷六月综合网| 成人欧美一区二区三区1314| 欧美一区二区三区播放老司机| 丁香五精品蜜臀久久久久99网站 | 欧美α欧美αv大片| 成人小视频在线观看| 亚洲电影欧美电影有声小说| 国产午夜精品理论片a级大结局| 91在线观看视频| 经典三级在线一区| 亚洲成人综合在线| 国产精品三级久久久久三级| 3d成人h动漫网站入口| 暴力调教一区二区三区| 精品亚洲aⅴ乱码一区二区三区| 亚洲另类春色校园小说| 国产亚洲一区二区三区| 在线播放91灌醉迷j高跟美女 | 韩国在线一区二区| 亚洲国产三级在线| 国产精品久久久久永久免费观看| 91精品国产综合久久国产大片| 色网站国产精品| 国产69精品久久久久毛片| 日韩国产欧美在线播放| 一区二区国产视频| 日韩美女视频19| 国产肉丝袜一区二区| 日韩视频免费观看高清完整版在线观看| 99精品国产热久久91蜜凸| 国产一区三区三区| 蜜桃av一区二区在线观看 | 91精品国产美女浴室洗澡无遮挡| 不卡一区二区中文字幕| 国产高清成人在线| 狠狠色丁香久久婷婷综合_中| 日本欧美一区二区三区乱码| 亚洲成人高清在线| 亚洲第一主播视频| 午夜亚洲国产au精品一区二区| 亚洲精品ww久久久久久p站| 国产精品美女久久福利网站| 欧美韩国日本不卡| 久久久久久久久岛国免费| 精品国产a毛片| 337p日本欧洲亚洲大胆色噜噜| 欧美一级高清片| 精品少妇一区二区三区在线视频| 欧美一级欧美一级在线播放| 欧美一区二区三区免费在线看| 91精品国产色综合久久ai换脸 | 国产精品一区一区| 国产精品主播直播| 成人av电影免费在线播放| 菠萝蜜视频在线观看一区| 不卡的av在线播放| 99国产精品久久久久久久久久| 91网站视频在线观看| 色综合久久中文字幕综合网| 在线观看成人小视频| 欧美日韩国产经典色站一区二区三区| 欧美性猛片xxxx免费看久爱| 欧美日韩电影一区| 精品福利av导航| 欧美国产日韩精品免费观看| 国产精品久久久久久久久搜平片| 亚洲日本在线天堂| 午夜在线电影亚洲一区| 久久国产精品一区二区| 国产高清精品在线| 色美美综合视频| 日韩一区二区在线观看| 国产婷婷色一区二区三区四区| 日本一区二区三区久久久久久久久不 | 国产精品 日产精品 欧美精品| 国产精品一区二区不卡| www.欧美色图| 91精品国产色综合久久ai换脸| 久久九九久久九九| 亚洲精品成a人| 久久91精品久久久久久秒播| 波多野结衣视频一区| 欧美肥妇free| 国产精品天干天干在线综合| 亚洲图片一区二区| 国产精品一区一区| 欧美色爱综合网| 国产日产亚洲精品系列| 一级女性全黄久久生活片免费| 免费在线观看一区二区三区| 成人一级片网址| 欧美一区二区三区在线观看视频| 欧美激情综合五月色丁香小说| 亚洲一区二区三区自拍| 国产伦精一区二区三区| 欧美日韩一区二区三区免费看| 久久久久亚洲综合| 亚洲自拍都市欧美小说| 国产麻豆视频一区| 欧美三级蜜桃2在线观看| 中文字幕精品三区| 毛片av一区二区| 在线观看欧美黄色| 中文字幕在线免费不卡| 极品瑜伽女神91| 欧美日韩免费高清一区色橹橹 | 亚洲精品欧美激情| 国产精品自拍在线| 欧美一区2区视频在线观看| 亚洲视频图片小说| 国产精品99久久久久久久女警| 欧美精品成人一区二区三区四区| 中文一区二区完整视频在线观看| 麻豆精品久久久| 欧美少妇一区二区| 亚洲欧美激情插| 成人不卡免费av| 国产亚洲一区二区三区四区| 麻豆专区一区二区三区四区五区| 欧美日韩亚洲高清一区二区| 亚洲天堂成人网| 成人av综合在线| 久久久高清一区二区三区| 久久成人免费网站| 91精品国产入口| 天堂av在线一区| 欧美日韩不卡视频| 一区二区在线观看视频| 色综合中文字幕国产 | 91麻豆精品91久久久久久清纯| 亚洲天堂久久久久久久| av一本久道久久综合久久鬼色| 国产欧美一区在线| 国产成人在线视频免费播放| 精品对白一区国产伦| 狠狠色丁香婷综合久久| 2021国产精品久久精品| 久久不见久久见中文字幕免费| 欧美一区二区三区四区五区| 亚洲成国产人片在线观看| 欧美日韩一区二区三区免费看| 亚洲自拍另类综合| 欧美疯狂做受xxxx富婆| 日日夜夜精品免费视频| 51精品久久久久久久蜜臀| 美女高潮久久久| 久久精品一区二区三区四区| 成人免费av资源| 亚洲欧洲国产日本综合| 色综合天天狠狠| 亚洲电影你懂得| 日韩视频免费观看高清完整版在线观看 | 成人国产一区二区三区精品| 中文字幕一区日韩精品欧美| 一本一道久久a久久精品| 亚洲国产精品一区二区www在线| 欧美日产国产精品| 狠狠狠色丁香婷婷综合久久五月| 久久久午夜精品| 91丨porny丨蝌蚪视频| 亚洲国产综合视频在线观看| 日韩视频中午一区| 国产99久久久精品| 亚洲激情在线激情| 欧美日韩一二三| 久久精品国产精品亚洲综合| 日本一区二区三区免费乱视频| 在线观看中文字幕不卡| 九九国产精品视频| 亚洲免费观看高清完整版在线观看| 欧美日韩黄视频| 国产不卡一区视频|