2015-09-24 37 views
4

誰問接受了以下問題用戶「讀取緩衝區」相當快: What does rd stand for in rdstate and rdbuf?STL「rdbuf」方法名稱代表什麼?

我仍然不知道什麼是「讀緩衝器」將意味着「的std :: ostream的」(COUT)的情況下。我沒有找到任何描述這個功能的STL文檔來做任何「閱讀」。這只是一個錯誤的功能嗎? (...顯然,但也許我失去了一些東西)

+2

這將可能保持一個謎,但我總是*假設*它的意思是「讀取流緩衝區的地址*」。另外'STL'僅指*容器,迭代器和算法*。 – Galik

+2

@Galik或_raw設備buffer_。 –

+0

原始數據緩衝區? –

回答

9

我仍然想知道「讀取緩衝區」在「std :: ostream」(cout)的上下文中意味着什麼。

這是「讀取」,如「讀取的值」或「獲取不讀取的值」從流中讀取「。

這似乎是舊的Cfront代碼中的常見慣例,例如,請參閱Cfront 2.0 documentation中描述的任務庫,該庫具有幾個類似命名的功能,例如,第2-5頁:

int rdcount(); 
int rdmode(); 
int rdmax(); 
void setmode(int); 
void setmax(int); 

因此,「rd」和「set」似乎分別用於getter和setter的名稱。

這意味着替換streambuf的rdbuf(basic_streambuf<C,T>*)的超負載是錯誤的,應該是setbuf,但該名稱已被streambuf自身使用並具有不同的含義。也就是說rdbuf「設定器」過載以後被添加,原來的設計只有「吸氣劑」,如圖中STRSTREAM(3C++)在PDF的上方連結的端手冊頁面:

class strstream : public strstreambase, public iostream { 
public: 
           strstream(); 
           strstream(char*, int, int mode); 
       strstreambuf* rdbuf() ; 
       char*   str(); 
}; 
相關問題