#include <iostream>
namespace dbj {
/*
print() non recursive version
also with no format token, because it is tedious for
when there is a lot of them to remember on the right
of the format sentence what values to provide and in which order
*/
template<typename... Targs>
inline void print (Targs... args)
{
if (sizeof...(Targs) > 0) {
// since initializer lists guarantee sequencing, this can be used to
// call a function on each element of a pack, in order:
char dummy[sizeof...(Targs)] = { ( (std::cout << args), 0)... };
}
}
}
int main() {
dbj::print ("\nANSI", "\nUnicode ₠ ₡ ₢ ₣ ₤ ₥ ₦ ₧ ₨ ₩ ₪ ₫" );
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKbmFtZXNwYWNlIGRiaiB7CiAvKiAKICBwcmludCgpIG5vbiByZWN1cnNpdmUgdmVyc2lvbgogYWxzbyB3aXRoIG5vIGZvcm1hdCB0b2tlbiwgYmVjYXVzZSBpdCBpcyB0ZWRpb3VzIGZvcgogd2hlbiB0aGVyZSBpcyBhIGxvdCBvZiB0aGVtIHRvIHJlbWVtYmVyIG9uIHRoZSByaWdodAogb2YgdGhlIGZvcm1hdCBzZW50ZW5jZSB3aGF0IHZhbHVlcyB0byBwcm92aWRlIGFuZCBpbiB3aGljaCBvcmRlcgogKi8KICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUYXJncz4KICAgaW5saW5lIHZvaWQgcHJpbnQgKFRhcmdzLi4uIGFyZ3MpCiAgewogICAgaWYgKHNpemVvZi4uLihUYXJncykgPiAwKSB7CiAgICAgLy8gc2luY2UgaW5pdGlhbGl6ZXIgbGlzdHMgZ3VhcmFudGVlIHNlcXVlbmNpbmcsIHRoaXMgY2FuIGJlIHVzZWQgdG8KICAgICAvLyBjYWxsIGEgZnVuY3Rpb24gb24gZWFjaCBlbGVtZW50IG9mIGEgcGFjaywgaW4gb3JkZXI6CiAgICBjaGFyIGR1bW15W3NpemVvZi4uLihUYXJncyldID0geyAoIChzdGQ6OmNvdXQgPDwgYXJncyksIDApLi4uIH07CiAgICB9Cn0KfQoKaW50IG1haW4oKSB7CiBkYmo6OnByaW50ICgiXG5BTlNJIiwgIlxuVW5pY29kZSDigqAg4oKhIOKCoiDigqMg4oKkIOKCpSDigqYg4oKnIOKCqCDigqkg4oKqIOKCqyIgKTsKIHJldHVybiAwOwp9