C 11可變引數函式模板

2021-06-14 00:09:58 字數 806 閱讀 8281

在log時引數是型別和個數是不固定的,所以在做log函式時,很多煩惱,不過c++11給我們帶來的希望

#include #include using namespace std;

class logger

static void makeloggeroff()

static bool loggerstate()

templatestatic void log(const aargs&... args)

}protected:

templatestatic void loghelper(ostream& os, const t& t1)

templatestatic void loghelper(ostream& os, const t& t1, const tn&... args)

};ostream * logger::_out_os = & std::cout;

bool logger::_logger_is_on = false;

//__func__ 當前的函式名

//__va_args__,可變參巨集

#define log(...) logger::log(__file__,' ',__line__,' ',__func__,"():",__va_args__)

無圖無真相,還是來張圖吧

另外就是,我用的是g++ 4.7 編譯的時候加上-std=c++11

C 11可變引數函式模板

2013 04 27 13 34 4162人閱讀收藏 舉報 c 模板 25 c c 84 在log時引數是型別和個數是不固定的,所以在做log函式時,很多煩惱,不過c 11給我們帶來的希望 這個是今天剛讀到的,加上自己的理解為位元組寫了乙個logger類,也給大家瞧瞧啊,歡迎大蝦拍板轉 cpp vi...

c 11 之可變引數模板

目的 包含0到任意個模板引數 宣告可變引數模板需要在typename或class 後面加上省略號 一 可變引數模板函式 template void f t.args cout 可變引數展開有兩種方式 1.通過遞迴的模板函式來將引數展開 2.通過逗號表示式和初始化列表方式展開引數包 對於1介紹一種通過...

c 11 可變引數模板類

可變引數模板類,如元組 template class tuple 遞迴和特化的方式展開引數包 可變引數模板類前向宣告 template struct sum 定義展開引數的可變引數模板類 template struct sum 可變引數模板類的特化,遞迴的終止類 template struct su...