mirror of
https://github.com/catchorg/Catch2.git
synced 2025-04-02 00:24:47 +02:00

The basic idea was to reduce the number of things dependent on the `Clock` type. To that end, I replaced `Duration<Clock>` with `IDuration` typedef for `std::nanoseconds`, and `FloatDuration<Clock>` with `FDuration` typedef for `Duration<double, std::nano>`. We can generally assume that any clock's duration can be expressed in nanoseconds, as long as we insert `duration_cast`s into the right places. Note that we cannot remove all dependence on `Clock` as a template arguments, because functions that actually measure the elapsed time have to use the Clock. We also changed some template function arguments to pass plain function pointers, so that the actual implementation can be placed into a cpp file.
24 lines
762 B
C++
24 lines
762 B
C++
|
|
// Copyright Catch2 Authors
|
|
// Distributed under the Boost Software License, Version 1.0.
|
|
// (See accompanying file LICENSE.txt or copy at
|
|
// https://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
// SPDX-License-Identifier: BSL-1.0
|
|
#ifndef CATCH_BENCHMARK_STATS_FWD_HPP_INCLUDED
|
|
#define CATCH_BENCHMARK_STATS_FWD_HPP_INCLUDED
|
|
|
|
#include <catch2/benchmark/catch_clock.hpp>
|
|
|
|
namespace Catch {
|
|
|
|
// We cannot forward declare the type with default template argument
|
|
// multiple times, so it is split out into a separate header so that
|
|
// we can prevent multiple declarations in dependees
|
|
template <typename Duration = Benchmark::FDuration>
|
|
struct BenchmarkStats;
|
|
|
|
} // end namespace Catch
|
|
|
|
#endif // CATCH_BENCHMARK_STATS_FWD_HPP_INCLUDED
|