1
是否可以將元組內的所有std::string
項目轉換爲const char*
?有沒有辦法將元組轉換爲具有不同項目類型的另一個元組?
template<typename... Ts>
std::tuple<Ts...> tup
我面臨的問題是我嘗試打印可變參數模板到文件
fprintf(file, std::get<Idx>(tup)...)
在TUP的第一個項目是格式字符串(const char*
肯定的),其餘的都是打印ARGS。該參數可能包含std::string
。問題是fprintf
不需要std::string
。如何將元組內的所有std::string
轉換爲const char*
並形成另一個元組?
tup
在完成打印之前不會出現範圍。
這些const char *的生命期應該是什麼?它們應該與'std :: string'一起銷燬嗎?它們是否應該動態分配,然後在某個時候刪除? – TartanLlama
@TartanLlama我只是更新我的問題,那就是我面臨的問題。 – kzhdev
也許這個問題可以幫助你:http://stackoverflow.com/questions/29820104/equivalent-of-stdtransform-for-tuples或這一個:http://stackoverflow.com/questions/5235246/transform-variadic-template α參數到另一個類型 – Ferruccio