/* * Created by Joachim on 16/04/2019. * Adapted from donated nonius code. * * Distributed under the Boost Software License, Version 1.0. (See accompanying * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ // repeat algorithm #ifndef TWOBLUECUBES_CATCH_DETAIL_REPEAT_HPP_INCLUDED #define TWOBLUECUBES_CATCH_DETAIL_REPEAT_HPP_INCLUDED #include #include namespace Catch { namespace Benchmark { namespace Detail { template struct repeater { void operator()(int k) const { for (int i = 0; i < k; ++i) { fun(); } } Fun fun; }; template repeater::type> repeat(Fun&& fun) { return { std::forward(fun) }; } } // namespace Detail } // namespace Benchmark } // namespace Catch #endif // TWOBLUECUBES_CATCH_DETAIL_REPEAT_HPP_INCLUDED