[討論] 有無匿名ostream物件做string format?
目前在改一個非常legacy的專案,Log function signature基本上寫死了沒辦法改 :
Log(const char* type, const char* client, const char* log);
以前看他們都是寫成這樣
char log[48];
sprintf(log, "This is a PEN : %s PINEAPPLE!");
Log(TYPE, CLIENT, log);
這寫法顯然是有問題的,但是這個VC6等級的編譯器又不支援sprintf_n
更不用說這其實挺麻煩的
所以後期我就把它改寫成這樣
stringstream log;
log << "This is a PEN : " << pen << " PINEAPPLE!";
Log(TYPE, CLIENT, log.str().c_str());
但是顯然這還是有點麻煩
自己是寫了一個ostream拼貼物件讓他看起來像是這樣
包含了一個operator const char*()
Log(TYPE, CLIENT, log << "This is a PEN : " << pen << " PINEAPPLE!");
來讓他能夠串起來,讓他能夠吃大多數的變數型別
問題來了,有沒有std函數能滿足這個需求?
Log希望能讓他們寫的方便一點,不然他們一個個都不想Log了 -o-||
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.140.192
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1511752872.A.682.html
→
11/27 11:38,
7年前
, 1F
11/27 11:38, 1F
→
11/27 11:40,
7年前
, 2F
11/27 11:40, 2F
→
11/27 11:42,
7年前
, 3F
11/27 11:42, 3F
→
11/27 12:23,
7年前
, 4F
11/27 12:23, 4F
→
11/27 12:23,
7年前
, 5F
11/27 12:23, 5F
→
11/27 12:23,
7年前
, 6F
11/27 12:23, 6F
→
11/27 12:24,
7年前
, 7F
11/27 12:24, 7F
→
11/27 13:16,
7年前
, 8F
11/27 13:16, 8F
→
11/27 13:16,
7年前
, 9F
11/27 13:16, 9F
→
11/27 13:17,
7年前
, 10F
11/27 13:17, 10F
→
11/27 13:19,
7年前
, 11F
11/27 13:19, 11F
→
11/27 13:20,
7年前
, 12F
11/27 13:20, 12F
→
11/27 13:20,
7年前
, 13F
11/27 13:20, 13F
→
11/27 14:08,
7年前
, 14F
11/27 14:08, 14F
→
11/27 14:08,
7年前
, 15F
11/27 14:08, 15F
→
11/27 14:08,
7年前
, 16F
11/27 14:08, 16F
→
11/27 14:08,
7年前
, 17F
11/27 14:08, 17F
→
11/27 14:09,
7年前
, 18F
11/27 14:09, 18F
推
11/27 18:48,
7年前
, 19F
11/27 18:48, 19F
→
11/28 06:41,
7年前
, 20F
11/28 06:41, 20F
推
11/28 09:39,
7年前
, 21F
11/28 09:39, 21F
→
11/28 09:39,
7年前
, 22F
11/28 09:39, 22F
→
11/28 13:21,
7年前
, 23F
11/28 13:21, 23F
→
11/28 13:22,
7年前
, 24F
11/28 13:22, 24F
→
11/28 13:24,
7年前
, 25F
11/28 13:24, 25F
→
11/29 19:30,
7年前
, 26F
11/29 19:30, 26F
→
11/29 19:30,
7年前
, 27F
11/29 19:30, 27F
→
11/29 19:31,
7年前
, 28F
11/29 19:31, 28F
→
11/29 19:32,
7年前
, 29F
11/29 19:32, 29F
→
11/29 19:39,
7年前
, 30F
11/29 19:39, 30F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):