#pragma once #include "siterator.hpp" namespace extra { using namespace siterator; template struct repeater { typedef decltype(uint_iterator<0>()) cur_iterator; template struct iteration { typedef repeater type; }; inline void operator ()(const Func &func) const { func(); } }; template void repeat(const Func &func) { do_loop, decltype(uint_iterator())>(func); } }