[英]What does STL "rdbuf" method name stand for?
提出以下問題的用戶很快就接受了“讀取緩沖區”: rd 在 rdstate 和 rdbuf 中代表什么?
我仍然想知道“讀取緩沖區”在“std::ostream”(cout)的上下文中意味着什么。 我沒有發現任何 STL 文檔將這個函數描述為進行任何“閱讀”。 這只是一個錯誤命名的函數嗎? (......顯然,但也許我錯過了一些東西)
我仍然想知道“讀取緩沖區”在“std :: ostream”(cout)的上下文中意味着什么。
它是“讀取”,如“讀取值”或“獲取值”未讀取為“從流中讀取”。
它似乎是舊Cfront代碼中的常見約定,例如,請參閱Cfront 2.0文檔中描述的任務庫,該文檔中包含多個名稱相同的函數,例如第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
“setter”重載,原始設計只有“getter”,如上面鏈接的PDF末尾的STRSTREAM(3C ++)手冊頁所示:
class strstream : public strstreambase, public iostream {
public:
strstream();
strstream(char*, int, int mode);
strstreambuf* rdbuf() ;
char* str();
};
原始設備/數據緩沖區 (rdbuf) <---- 我更喜歡 @Daniel Jour 的評論。
如:顯式 basic_istream( std::basic_streambuf* sb); 參考:
類 basic_streambuf 是原始設備的抽象。 這意味着它可以是 socket、file、namedpipe、mailslot、memory、graphycard-mem。 那么從高層次來看,如何命名不同的設備?
我認為 RD(原始設備)和原始數據都可以,但原始設備更准確,甚至 99.999% 次都指向內存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.