#include void myPrintf(string format) { cout << format; } template void myPrintf(string format, H const &h, Ts const &...ts) { auto percent = format.find_first_of("%"); if(percent == string::npos) thorw invalid_argument("Too many argument to printf"); cout << format.substr(0, percent); cout << h; myPrintf(format.substr(percent + 1), ts...); }