ostringstream を使用して、複数の異なる引数を 1 つの文字列に結合できるようにしたいと考えています。そうすれば、結果の単一の文字列をランダムな問題なしでログに記録できます。
私はこれまでに得ました:
template <typename T>
void MagicLog(T t)
{
std::cout << t << std::endl;
}
template<typename T, typename... Args>
void MagicLog(T t, Args... args) // recursive variadic function
{
std::cout << t << std::endl;
MagicLog(args...);
}
template<typename T, typename... Args>
void LogAll(int logType, T t, Args... args)
{
std::ostringstream oss;
MagicLog(t);
MagicLog(args...);
//Log(logType, oss.str());
}
したがって、std::cout を LogAll 関数で作成した oss に置き換える必要があります。それを引数として他の関数に渡そうとしましたが、「削除された関数」について不平を言っていました...
では、どうすれば再帰的な可変引数関数を取得して、別のパラメーターである ostringstream を受け入れることができるでしょうか?