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

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

?? locale.cpp

?? C標準庫源代碼,能提高對C的理解,不錯的哦
?? CPP
字號:
// locale -- class locale member functions
#include <cstdlib>
#include <istream>
#include <locale>
_STD_BEGIN

typedef char_traits<char> _Traits;
typedef istreambuf_iterator<char, _Traits> _Initer;
typedef ostreambuf_iterator<char, _Traits> _Outiter;

locale::locale(const locale& _X, const locale& _Y, category _C)
        : _Ptr(new _Locimp(*_X._Ptr))
        {       // construct a locale by copying named facets
        _Locinfo _Lobj(_X._Ptr->_Cat, _X._Ptr->_Name.c_str());
        _Locimp::_Makeloc(_Lobj._Addcats(_C & _Y._Ptr->_Cat,
                _Y._Ptr->_Name.c_str()), _C, _Ptr, &_Y);
        }

locale::locale(const char *_S, category _C)
        : _Ptr(new _Locimp)
        {       // construct a locale with named facets
        _Init();
        _Locinfo _Lobj(_C, _S);
        if (_Lobj._Getname().compare("*") == 0)
                _THROW(runtime_error, "bad locale name");
        _Locimp::_Makeloc(_Lobj, _C, _Ptr, 0);
        }

locale::locale(const locale& _X, const char *_S, category _C)
        : _Ptr(new _Locimp(*_X._Ptr))
        {       // construct a locale by copying, replacing named facets
        _Locinfo _Lobj(_C, _S);
        if (_Lobj._Getname().compare("*") == 0)
                _THROW(runtime_error, "bad locale name");
        _Locimp::_Makeloc(_Lobj._Addcats(_Ptr->_Cat,
                _Ptr->_Name.c_str()), _C, _Ptr, 0);
        }

locale& locale::_Addfac(facet *_Fac, size_t _Id, size_t _Cat)
        {       // add a facet, copying on write
        if (1 < _Ptr->_Refs)
                {_Ptr->_Decref();
                _Ptr = new _Locimp(*_Ptr); }
        _Ptr->_Addfac(_Fac, _Id);
        if (_Cat != 0)
                _Ptr->_Name = "*";
        return (*this); }

locale __cdecl locale::global(const locale& _X)
        {       // change global locale
        locale _L;
        _Lockit _Lk;
        if (_Locimp::_Global != _X._Ptr)
                {       // set new global locale
                delete _Locimp::_Global->_Decref();
                _Locimp::_Global = new _Locimp(*_X._Ptr);
                category _Cmask = _Locimp::_Global->_Cat & all;
                if (_Cmask == all)
                        setlocale(LC_ALL, _Locimp::_Global->_Name.c_str());
                else
                        for (int _Cat = 0; _Cat <= _LC_MAX; ++_Cat)
                                if ((_CATMASK(_Cat) & _Cmask) != 0)
                                        setlocale(_Cat,
                                                _Locimp::_Global->_Name.c_str());
                }
        return (_L);
        }

        // facets associated with C categories
#define ADDFAC(T, cat, pi, pl) \
        if ((_CATMASK(T::_Getcat()) & cat) == 0) \
                ; \
        else if (pl == 0) \
                pi->_Addfac(new T(_Lobj), T::id); \
        else \
                pi->_Addfac((locale::facet *)&_USE(*pl, T), T::id);

typedef ctype<char> _T1;
typedef num_get<char, _Initer> _T2;
typedef num_put<char, _Outiter> _T3;
typedef numpunct<char> _T4;

typedef codecvt<char, char, mbstate_t> _Tc1;

template<> locale::id ctype<char>::id;
template<> locale::id codecvt<char,char,int>::id;
template<> locale::id num_get<char, _Initer>::id;
template<> locale::id num_put<char, _Outiter>::id;
template<> locale::id numpunct<char>::id;

locale::_Locimp *__cdecl locale::_Locimp::_Makeloc(
        const _Locinfo& _Lobj, locale::category _C,
                _Locimp *_Pi, const locale *_Pl)
        {       // setup a new locale
        _Lockit _Lk;
        ADDFAC(_T1, _C, _Pi, _Pl);
        ADDFAC(_T2, _C, _Pi, _Pl);
        ADDFAC(_T3, _C, _Pi, _Pl);
        ADDFAC(_T4, _C, _Pi, _Pl);
        //...
        ADDFAC(_Tc1, _C, _Pi, _Pl);
        _Locimp::_Makexloc(_Lobj, _C, _Pi, _Pl);
        _Locimp::_Makewloc(_Lobj, _C, _Pi, _Pl);
        _Pi->_Cat |= _C;
        _Pi->_Name = _Lobj._Getname();
        return (_Pi);
        }

locale::_Locimp::_Locimp(const locale::_Locimp& _X)
        : locale::facet(1), _Fv(0), _Nfv(_X._Nfv),
                _Cat(_X._Cat), _Xpar(_X._Xpar), _Name(_X._Name)
        {       // construct a _Locimp from a copy
        _Lockit Lk;
        if (&_X == _Clocptr)
                _Makeloc(_Locinfo(), locale::all, this, 0);
        else
                {_Lockit _Lk;
                if (0 < _Nfv)
                        {       // copy over nonempty facet vector
                        if ((_Fv = (locale::facet **)malloc(
                                _Nfv * sizeof (locale::facet *))) == 0)
                                _Nomemory();
                        for (size_t _N = _Nfv; 0 < _N; )
                                {       // copy over facet pointers
                                locale::facet *_Pf = _X._Fv[--_N];
                                if ((_Fv[_N] = _Pf) != 0)
                                        _Pf->_Incref();
                                }
                        }
                }
        }

void locale::_Locimp::_Addfac(locale::facet *_Pf, size_t _Id)
        {       // add a facet to a locale
        _Lockit _Lk;
        const size_t _MINCAT = 32;
        if (_Nfv <= _Id)
                {       // make facet vector larger
                size_t _N = _Id + 1;
                if (_N < _MINCAT)
                        _N = _MINCAT;
                locale::facet **_Pvn = (locale::facet **)realloc(_Fv,
                        _N * sizeof (locale::facet **));
                if (_Pvn == 0)
                        _Nomemory();
                _Fv = _Pvn;
                for (; _Nfv < _N; ++_Nfv)
                        _Fv[_Nfv] = 0;
                }
        _Pf->_Incref();
        if (_Fv[_Id] != 0)
                delete _Fv[_Id]->_Decref();
        _Fv[_Id] = _Pf;
        }

_CRTIMP2 _Locinfo::_Locinfo(const char *_Name)
        {       // switch to a named locale
        _Oname = setlocale(LC_ALL, 0);
        _Nname = _Name == 0
                || (_Name = setlocale(LC_ALL, _Name)) == 0
                        ? "*" : _Name; }

_CRTIMP2 _Locinfo::_Locinfo(int _C, const char *_Name)
        {_Addcats(_C, _Name); }


_CRTIMP2 _Locinfo::~_Locinfo()
        {       // destroy a _Locinfo object, revert locale
        if (0 < _Oname.size())
                setlocale(LC_ALL, _Oname.c_str()); }

_CRTIMP2 _Locinfo& _Locinfo::_Addcats(int _C, const char *_Name)
        {       // merge in another named locale
        const char *_Lname = 0;
        if (_C == 0)
                _Lname = setlocale(LC_ALL, 0);
        else if (_C == _M_ALL)
                _Lname = setlocale(LC_ALL, _Name);
        else
                for (int _Cat = 0; _Cat <= _LC_MAX; ++_Cat)
                        if ((_CATMASK(_Cat) & _C) != 0)
                                _Lname = setlocale(_Cat, _Name);
        _Nname = _Lname != 0 ? _Lname : "*";
        return (*this); }

_STD_END

/*
 * Copyright (c) 1995 by P.J. Plauger.  ALL RIGHTS RESERVED. 
 * Consult your license regarding permissions and restrictions.
 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品911| 狂野欧美性猛交blacked| 26uuu久久综合| 日韩视频在线观看一区二区| 7799精品视频| 日韩视频免费观看高清在线视频| 欧美日韩黄色一区二区| 欧美三级一区二区| 在线成人高清不卡| 欧美一区二区三区在线观看视频| 3atv在线一区二区三区| 日韩一二三四区| 久久先锋影音av| 中文字幕亚洲区| 亚洲一区二区三区四区的| 五月天中文字幕一区二区| 亚洲国产成人porn| 蜜桃av噜噜一区二区三区小说| 久国产精品韩国三级视频| 国产成人亚洲综合a∨猫咪| 成人黄色国产精品网站大全在线免费观看 | 免费日韩伦理电影| 国产原创一区二区| 91免费精品国自产拍在线不卡| 色综合久久天天| 欧美一区二区三区色| 久久人人爽爽爽人久久久| 中文字幕日韩一区| 亚洲bdsm女犯bdsm网站| 国产精品99久久不卡二区| 91免费版在线看| 欧美精品一区二区精品网| 中文字幕色av一区二区三区| 蜜臀av国产精品久久久久| 99re热这里只有精品视频| 欧美疯狂性受xxxxx喷水图片| 久久久精品免费观看| 一区二区三区四区激情| 国精品**一区二区三区在线蜜桃| 91蝌蚪国产九色| 精品国产成人系列| 亚洲一区二区三区免费视频| 国产宾馆实践打屁股91| 欧美剧在线免费观看网站 | av午夜精品一区二区三区| 欧美在线视频日韩| 国产网红主播福利一区二区| 性久久久久久久| www.日韩精品| 久久久夜色精品亚洲| 午夜精品爽啪视频| 97超碰欧美中文字幕| 欧美精品一区二区久久婷婷| 婷婷中文字幕一区三区| 色欧美88888久久久久久影院| 久久精品在线观看| 玖玖九九国产精品| 欧美精品v国产精品v日韩精品| 中文字幕在线观看一区二区| 国产一区在线观看麻豆| 日韩色视频在线观看| 香蕉久久夜色精品国产使用方法 | 亚洲第一福利一区| 色综合天天性综合| 色婷婷综合久久久久中文| 精品国产91久久久久久久妲己 | 欧美军同video69gay| 亚洲免费在线观看视频| av一区二区三区黑人| 久久婷婷综合激情| 激情偷乱视频一区二区三区| 精品免费日韩av| 乱一区二区av| 日韩欧美国产综合| 蜜臀av在线播放一区二区三区| 337p亚洲精品色噜噜| 日韩国产一区二| 日韩精品在线看片z| 久久精品国产澳门| 久久亚洲二区三区| 国产高清久久久久| 国产精品久久久久久久久久免费看| 粗大黑人巨茎大战欧美成人| 欧美优质美女网站| 天天操天天干天天综合网| 欧美高清视频不卡网| 久久精品噜噜噜成人88aⅴ| 久久久久久夜精品精品免费| 豆国产96在线|亚洲| 亚洲欧美一区二区在线观看| 色狠狠色狠狠综合| 免费高清在线一区| 国产欧美一区二区三区在线看蜜臀 | 一区二区在线观看免费视频播放 | 国产乱子伦视频一区二区三区 | 2020国产成人综合网| 狠狠色狠狠色综合系列| 中文欧美字幕免费| 在线观看一区日韩| 麻豆精品一区二区av白丝在线| 久久欧美中文字幕| 色综合欧美在线| 久久精品国产成人一区二区三区 | 久久电影网站中文字幕| 欧美韩日一区二区三区| 欧美伊人久久久久久久久影院 | 亚洲高清视频在线| 欧美精品一区二区三区很污很色的| 成人激情电影免费在线观看| 午夜精品久久久久久久99樱桃| 久久久久成人黄色影片| 欧美日韩午夜影院| 高清不卡一区二区| 舔着乳尖日韩一区| 国产色综合久久| 欧美日韩第一区日日骚| 成人av在线一区二区三区| 婷婷久久综合九色综合绿巨人| 欧美韩国一区二区| 欧美一级黄色大片| 日本丶国产丶欧美色综合| 国产一区二区三区| 日韩精品亚洲专区| 自拍偷拍亚洲激情| 久久久精品黄色| 日韩欧美你懂的| 欧美日韩国产在线观看| 99久久婷婷国产综合精品 | 国产精品超碰97尤物18| 日韩欧美卡一卡二| 欧日韩精品视频| 97精品国产露脸对白| 久久成人免费电影| 日韩和欧美的一区| 亚洲精品免费一二三区| 国产精品美女久久久久久| 精品三级在线观看| 欧美一级爆毛片| 精品视频免费在线| 欧美亚洲精品一区| 91色视频在线| 97aⅴ精品视频一二三区| 成年人国产精品| 成人性生交大片免费看中文 | 欧美大片顶级少妇| 4438x亚洲最大成人网| 欧美放荡的少妇| 91精品国产综合久久久久| 欧美日韩国产首页在线观看| 色香蕉久久蜜桃| 欧美日韩一区久久| 欧美性高清videossexo| 欧洲一区在线观看| 欧美日韩亚洲高清一区二区| 欧美日韩国产乱码电影| 欧美高清一级片在线| 91精品欧美一区二区三区综合在| 正在播放亚洲一区| 欧美成人一区二区| 国产亚洲一区字幕| 中文字幕中文在线不卡住| 成人免费在线视频| 夜夜操天天操亚洲| 日韩在线a电影| 国产乱码精品1区2区3区| 国产精品综合视频| 91麻豆精东视频| 精品视频在线视频| 亚洲精品一区二区三区精华液| 337p粉嫩大胆噜噜噜噜噜91av| 欧美国产精品一区二区三区| 亚洲精品网站在线观看| 亚洲bt欧美bt精品| 国产在线精品不卡| 99热国产精品| 日韩亚洲欧美在线观看| 欧美激情资源网| 亚洲国产成人av| 国产麻豆日韩欧美久久| 91视频免费播放| 日韩精品一区在线| 国产精品欧美一区喷水| 性感美女极品91精品| 国产精品99久久久久久有的能看| 99久久精品免费| 日韩欧美一级二级三级久久久| 国产女人18水真多18精品一级做 | 欧美精品在线一区二区| 久久久五月婷婷| 午夜欧美在线一二页| 国产精品中文字幕日韩精品| 日本乱码高清不卡字幕| 久久人人超碰精品| 亚洲国产成人porn| 北条麻妃一区二区三区| 日韩免费成人网| 亚洲成人动漫在线免费观看| 国产91丝袜在线18| 日韩欧美成人一区| 亚洲国产精品自拍|