#include <iostream>
struct execute {
const unsigned long long n;
template<typename Callable>
void operator() (Callable what) {
for (auto i = 0; i < n; i++)
what();
}
};
execute operator"" _times(unsigned long long n) {
return execute{n};
}
int main() {
3_times([]{
std::cout << "bla" << std::endl;
});
auto twice = 2_times;
twice([]{
std::cout << "blup" << std::endl;
});
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IGV4ZWN1dGUgewogICAgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nIG47CgogICAgdGVtcGxhdGU8dHlwZW5hbWUgQ2FsbGFibGU+CiAgICB2b2lkIG9wZXJhdG9yKCkgKENhbGxhYmxlIHdoYXQpIHsKICAgICAgICBmb3IgKGF1dG8gaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgICAgICAgIHdoYXQoKTsKICAgIH0KfTsKCmV4ZWN1dGUgb3BlcmF0b3IiIiBfdGltZXModW5zaWduZWQgbG9uZyBsb25nIG4pIHsKICAgIHJldHVybiBleGVjdXRle259Owp9CgppbnQgbWFpbigpIHsKICAgIDNfdGltZXMoW117CiAgICAgICAgc3RkOjpjb3V0IDw8ICJibGEiIDw8IHN0ZDo6ZW5kbDsKICAgIH0pOwoKICAgIGF1dG8gdHdpY2UgPSAyX3RpbWVzOwoKICAgIHR3aWNlKFtdewogICAgICAgIHN0ZDo6Y291dCA8PCAiYmx1cCIgPDwgc3RkOjplbmRsOwogICAgfSk7Cn0K