<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 134,comments - 22,trackbacks - 0
    以前一直沒有關心std::endl的工作機制,最近突然想一窺究竟,于是下載了sgi的stl(http://www.sgi.com/tech/stl/)實現,
    于是恍然大悟,對其實現者真是敬佩。

    在文件Ostream中class basic_ostream 有如下成員函數:

     basic_ostream& operator<< (basic_ostream& (*__f)(basic_ostream&))
        { return __f(*this); }

     basic_ostream& operator<< (_Basic_ios& (*__f)(_Basic_ios&))
        { __f(*this); return *this; }

     basic_ostream& operator<< (ios_base& (*__f)(ios_base&))
        { __f(*this); return *this; }

    然后有如下全局函數:
    template <class _CharT, class _Traits>
    inline basic_ostream<_CharT, _Traits>&
    endl(basic_ostream<_CharT, _Traits>& __os) {
      __os.put(__os.widen('\n'));
      __os.flush();
      return __os;
    }

    可見原來我們經常使用的cout<<.....<<endl中的endl竟然是一個函數指針,由此我們還可以找到如下定義:

    // basefield manipulators, section 27.4.5.3
    inline ios_base& dec(ios_base& __s)
      { __s.setf(ios_base::dec, ios_base::basefield); return __s; }

    inline ios_base& hex(ios_base& __s)
      { __s.setf(ios_base::hex, ios_base::basefield); return __s; }

    inline ios_base& oct(ios_base& __s)
      { __s.setf(ios_base::oct, ios_base::basefield); return __s; }

    原來這些我們經常見到的C++流輸出格式符居然都是一些函數,都是通過重載<<操作符來實現的。
    http://www.cppblog.com/luke/archive/2009/04/01/78572.html
    posted on 2009-11-15 12:21 何克勤 閱讀(301) 評論(0)  編輯  收藏 所屬分類: C/C++
    主站蜘蛛池模板: 国产精品亚洲片夜色在线| 亚洲黄色免费电影| 亚洲1区2区3区精华液| 一二三四免费观看在线视频中文版| 亚洲国产日韩一区高清在线| 特级无码毛片免费视频尤物| 亚洲精品综合久久中文字幕| 18禁止看的免费污网站| 亚洲国产日产无码精品| 国产三级在线观看免费| 爱情岛论坛亚洲品质自拍视频网站 | 永久免费视频v片www| 亚洲AV无码一区二区三区性色| 暖暖免费高清日本中文| 国产综合成人亚洲区| 国产亚洲精品激情都市| 久久久久久久岛国免费播放 | 亚洲欧洲成人精品香蕉网| 3344在线看片免费| 亚洲欧洲春色校园另类小说| 在线观看人成网站深夜免费| 香蕉国产在线观看免费| 亚洲乱色熟女一区二区三区丝袜| 亚洲精品免费观看| 亚洲人成电影网站久久| 亚洲国产成人久久综合一区77| 中文字幕不卡免费高清视频| 亚洲免费二区三区| 免费在线观看视频a| 午夜老司机永久免费看片| 亚洲综合一区二区三区四区五区| 亚洲成a人片在线播放| 国产精品区免费视频| 亚洲国产欧洲综合997久久| 黑人大战亚洲人精品一区| 最近在线2018视频免费观看| 午夜在线亚洲男人午在线| 亚洲成年轻人电影网站www| 青草草在线视频永久免费| 精品免费tv久久久久久久| 亚洲日本va一区二区三区|