実行定義文字列の C++ sprintf 呼び出しで実行時定義リストを使用する方法を理解しようとしています。文字列には既にトークンが含まれています。文字列内のできるだけ多くの引数に一致するように、何らかの方法で呼び出しを行う必要があります。基本的に、以下の 4 つの呼び出しを、sprintf (buffer, "This is my string with args %i", myvec) の行に沿って、それらすべてに対して機能する単一の呼び出しにコンパイルします。
std::vector<int> myvec = {0, 1, 2, 3, 4};
char buffer [500];
sprintf (buffer, "This is my string with args %i", myvec[0], myvec[1], myvec[2], myvec[3], myvec[4]);
sprintf (buffer, "This is my string with args %i %i", myvec[0], myvec[1], myvec[2], myvec[3], myvec[4]);
sprintf (buffer, "This is my string with args %i %i %i", myvec[0], myvec[1], myvec[2], myvec[3], myvec[4]);
sprintf (buffer, "This is my string with args %i %i %i %i", myvec[0], myvec[1], myvec[2], myvec[3], myvec[4]);
私は同僚と話しましたが、彼らはそのようなものは存在しないと考えているので、公開しようと思いました. 何か案は?