I\'d like to wrap std::cout for formatting, like so:
std::cout
mycout([what type?] x, [optional args]) { ... // do some formatting on x first std:
This comes easy with variadic template arguments:
template void print(T t) { std::cout << t; } template void print(T t, Args... args) { std::cout << t << std::endl; print(args...); } int main() { std::cout << std::boolalpha; print(3, 's', true, false); }
Output:
3 s true false
3
s
true
false
Live Demo