青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 18,  comments - 104,  trackbacks - 0
相信能看到這里的人,應該都用過std::endl吧,沒見過?

1#include <iostream>
2
3using namespace std;
4
5int main()
6{
7    cout<<"Hello World!"<<endl;
8}

9

就是hello world后面那個。到底這個endl是個什么東西呢? 答案是:函數指針。
這是它的聲明:

1template<class _Elem,
2    class _Traits> inline
3    basic_ostream<_Elem, _Traits>&
4    endl(basic_ostream<_Elem, _Traits>& _Ostr)

當然endl只輸入輸出流,輸入流沒有endl。所以輸出流需要一個類似

basic_ostream& operator<<(basic_ostream&(*)(basic_ostream &))

函數來接受這個endl。

如果想寫個類,比如一個log類,希望可以像標準流一樣的輸出,需要做什么呢?

1class Log
2{
3public:
4    teamplate <typename T>
5    Log& operator<<(const T& t)
6    {
7        // write t to log file.
8    }

9}
;

有了這個定義后,Log類就可以像標準輸出流一樣用了,比如:

1Log log;
2log<<123<<"ABC"<<132.32<<endl;

什么,編譯出錯,而且不止一個。上面說過,是endl引起的問題。
std::endl的定義本身就是個模板函數,用一個模板函數(編譯時連參數都確定不下來)去推導模板參數,是極不現實的。
因為:endl有兩個模板參數,_Elem 和 _Traits,其實_Traints 本身就是個以_Elem為參數的類模板,標準庫里面有兩個endl版本,
一個是 _Elem = char, 另一個是 _Elem = wchar.
所以編譯器不能推導出Log類的operator<<的模板參數T,于是就錯誤了。

解決方案,之前也說過,需要一個接受函數指針的operator<<的重載版本。

1Log& operator<<(basic_ostream<char, char_traits<char>>& (*_Pfn)(basic_ostream<char, char_traits<char>>&))
2    {
3            // write endl to log using _Pfn
4    }

有這個定義,就可以順利使用 <<std::endl 了。
當然可以為wchar定義一個operator<<來使用寬字符,這都是函數重載惹的禍呀。因為char和wchar算是endl函數兩個重載版本。

問題解決了,說一下,同樣的函數還有:

ends,輸入一個字符串結束符。
flush,刷新流。
當然這倆個不常用。
posted on 2009-04-18 19:42 尹東斐 閱讀(4411) 評論(4)  編輯 收藏 引用

FeedBack:
# re: std::endl 是什么?
2009-04-18 20:58 | OwnWaterloo
class slt_like_ostream {

slt_like_ostream&
operator<<(std::ios_base& (*pf)(std::ios_base& );

template< class C, class T >
slt_like_ostream&
operator<<(std::basic_ios< C,T>& (*pf)(std::basic_ios< C, T>&);

template< class C, class T >
operator<<
(std::basic_ostream< C,T>& (*pf)(std::basic_ostream< C,T>&);

};

這是stl對ostream的規范。
如果不實現這些規范, 不能與stl的其他組件(如std::endl)合作也是理所當然的。

  回復  更多評論
  
# re: std::endl 是什么?
2009-04-18 21:08 | 尹東斐
@OwnWaterloo

嗯,就是這樣子的。
其實可以直接從basic_ostream繼承,然后把stream_buf改成自己想要的輸出方式就可以。  回復  更多評論
  
# re: std::endl 是什么?[未登錄]
2009-04-22 17:20 | jans2002
以前遇到自己的Log不能用endl,就把endl都改為"\n"了。
感謝樓主講解。  回復  更多評論
  
# re: std::endl 是什么?
2009-05-12 15:15 | zhaoyg
learn了  回復  更多評論
  
<2009年4月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

常用鏈接

留言簿(4)

隨筆檔案

文章分類

文章檔案

相冊

好友博客

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲女同同性videoxma| 欧美激情中文不卡| 久久成人羞羞网站| 国产精品高潮久久| 最近中文字幕mv在线一区二区三区四区 | 亚洲欧美一区二区在线观看| 欧美在线短视频| 亚洲另类视频| 国产精品视频男人的天堂| 欧美一区二区三区视频免费| 亚洲激情偷拍| 欧美日韩亚洲成人| 日韩网站在线观看| 亚洲影视九九影院在线观看| 黄色成人免费观看| 欧美国产一区二区| 欧美xx69| 亚洲一区二区四区| 亚洲福利免费| 欧美激情一区三区| 亚洲激情不卡| 欧美国内亚洲| 欧美黄色一级视频| 国产精品女人久久久久久| 99精品国产在热久久| 亚洲蜜桃精久久久久久久| 国产精品入口麻豆原神| 欧美一区免费视频| 国产精品久久久| 99国产一区| 亚洲天堂视频在线观看| 欧美在线你懂的| 在线视频欧美日韩精品| 99在线|亚洲一区二区| 一区二区视频欧美| 亚洲欧洲精品一区二区三区不卡| 国产专区综合网| 亚洲激精日韩激精欧美精品| 好吊色欧美一区二区三区四区| 国产精品日本| 亚洲免费视频观看| 亚洲精品一区二区三区樱花| 99亚洲一区二区| 国产日韩精品一区二区三区在线| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美四级在线观看| 日韩一级成人av| 亚洲人成人一区二区三区| 免费亚洲电影| 亚洲乱码精品一二三四区日韩在线| 国产视频精品va久久久久久| 一区二区三区免费网站| 国产亚洲欧洲997久久综合| 在线亚洲一区二区| 中文日韩电影网站| 欧美系列亚洲系列| 一区二区日韩精品| 欧美大片va欧美在线播放| 亚洲激情在线观看| 欧美淫片网站| 国产啪精品视频| 久久国产精品72免费观看| 免费永久网站黄欧美| 国产综合网站| 免费观看久久久4p| 亚洲午夜精品网| 久久天天狠狠| 亚洲国产精品嫩草影院| 亚洲理论在线观看| 麻豆久久久9性大片| 亚洲精品视频中文字幕| 国产日韩欧美在线| 久久影音先锋| 欧美亚日韩国产aⅴ精品中极品| 久久精品成人一区二区三区| 亚洲香蕉在线观看| 免费日韩av| 欧美精品一区视频| 久久成人国产精品| 欧美亚洲免费| 亚洲欧美国产毛片在线| 亚洲日韩欧美视频| 欧美国产在线观看| 亚洲午夜黄色| 亚洲网站在线| 一本色道久久综合亚洲二区三区 | 亚欧成人在线| 亚洲欧美清纯在线制服| 一区二区三区精品| 亚洲视频一二区| 亚洲国内精品在线| 在线观看视频欧美| 久久福利电影| 欧美与欧洲交xxxx免费观看| 久久久蜜臀国产一区二区| 欧美一级大片在线观看| 亚洲一区二区三区涩| 亚洲精品网址在线观看| 亚洲一区二区免费视频| 欧美一区二区三区四区在线观看地址 | 国内成人精品2018免费看| 国产麻豆综合| 欧美激情国产日韩精品一区18| 欧美日韩亚洲高清| 国产精品制服诱惑| 亚洲电影免费在线 | 亚洲国内精品| 亚洲精品一区在线观看香蕉| 久久久999国产| 一本一本a久久| 久久久www成人免费精品| 美腿丝袜亚洲色图| 亚洲精品在线三区| 久久精品99无色码中文字幕| 欧美电影免费观看高清| 国产一区久久| 性8sex亚洲区入口| 亚洲美女毛片| 欧美freesex8一10精品| 极品尤物av久久免费看| 欧美在线黄色| 欧美一级理论性理论a| 欧美午夜视频在线| 亚洲一区二区三区四区视频| 亚洲第一区在线观看| 久久久精品一区| 激情综合自拍| 欧美成人在线免费视频| 久久先锋资源| 亚洲激情综合| av72成人在线| 国产欧美一区二区三区另类精品| 亚洲欧美国产高清| 久久精品盗摄| 在线亚洲一区二区| 欧美有码视频| 亚洲作爱视频| 午夜性色一区二区三区免费视频 | 欧美中文字幕在线| 亚洲春色另类小说| av成人国产| 激情欧美日韩| 亚洲午夜三级在线| 亚洲成色999久久网站| 亚洲国产91精品在线观看| 欧美三级网址| 亚洲一级黄色片| 久久国产欧美精品| 伊人春色精品| 欧美r片在线| 欧美大成色www永久网站婷| 亚洲二区三区四区| 免费日韩成人| 亚洲性夜色噜噜噜7777| 久久精品国产一区二区电影 | 欧美成人一区二区三区| 亚洲一区二区动漫| 久久久欧美精品| 欧美韩日视频| 亚洲日本欧美日韩高观看| 欧美一区1区三区3区公司| 亚洲区国产区| 久久偷窥视频| 欧美成人中文字幕在线| 国产模特精品视频久久久久| 欧美va亚洲va香蕉在线| 久久精品一区蜜桃臀影院| 久久成人一区| 国产精品普通话对白| 亚洲精品国精品久久99热| 亚洲精品视频在线看| 美女网站久久| 亚洲高清av在线| 精品av久久707| 久久久99国产精品免费| 久久精品国产v日韩v亚洲 | 午夜亚洲视频| 在线观看视频欧美| 欧美va天堂| 亚洲伦理在线观看| 久久免费精品视频| 狠狠色综合播放一区二区| 性欧美长视频| 久久噜噜噜精品国产亚洲综合| 国产亚洲精品bv在线观看| 久久久久久久999精品视频| 亚洲精品久久视频| 国产精品一二三| 99re66热这里只有精品3直播 | 久久综合图片| 一区二区三区精品视频在线观看| 欧美在线视频在线播放完整版免费观看 | 亚洲欧洲偷拍精品| 久久日韩粉嫩一区二区三区 | 日韩午夜在线观看视频| 99热精品在线观看| 激情文学一区| 欧美大秀在线观看| 西瓜成人精品人成网站| 亚洲特色特黄|