175. Template

Question.12

A developer writes a type-safe printf replacement:

void log(const char* msg) {
   uart_send(msg);  // Base case
}

template<typename T, typename... Args>
void log(const char* fmt, T val, Args... rest) {
   while (*fmt != '%') uart_putc(*fmt++);
   print_value(val);
   log(++fmt, rest...);  // Recurse with remaining args
}

log("T=% P=%", 25, 1013);

What does Args... represent?

Need Help? Refer to the Quick Guide below

Select Answer