Я задавал подобный вопрос ранее, не понимая, что этого недостаточно. c.
Итак, у меня есть эта функция, которая должна принимать все аргументы функции печати вместе с. ... и все, а затем поместите его в очередь, которая позже вызовет реальную функцию печати.
Что-то вроде:
std::queue<SOMETHING> queue;
template <typename... Params>
void printLater(int a, int b, char* fmt, Params ...args) {
queue.push(args);
}
template <typename... Params>
void print(int a, int b, char* fmt, Param ...args) {
//whatever
}
void actuallyPrint() {
//whatever
print(queue.pop());
}
Контекст: я работаю с аппаратным обеспечением это может обрабатывать запросы только каждые 50 мсек, иначе они игнорируются. Моя цель - создать обертку, которая будет автоматически добавлять задержки, если я отправлю ей пакет сразу.
Мой запасной вариант, если я не могу этого сделать, хотя я бы предпочел сделать это, просто sprintf (или эквивалент C ++ ) в строку сохраните только строку в очереди и вызовите print()
без всех аргументов.