#ifndef INCLUDED_BOBCAT_HIGHRESOLUTIONCLOCK_
#define INCLUDED_BOBCAT_HIGHRESOLUTIONCLOCK_

#include <bobcat/highsysclock>

namespace FBB
{

struct HighResolutionClock: public 
                            HighSysClock<std::chrono::high_resolution_clock>
{
    using ChronoClock = std::chrono::high_resolution_clock;

    HighResolutionClock(TimePoint const &timePoint = now());

    template <typename ClockTp>
    HighResolutionClock(ClockBase<ClockTp> const &clock);
};

inline HighResolutionClock::HighResolutionClock(TimePoint const &timePoint)
:
    HighSysClock<ChronoClock>(timePoint)
{}

template <typename ClockTp>
inline HighResolutionClock::HighResolutionClock(
                                            ClockBase<ClockTp> const &clock)
:
    HighSysClock<ChronoClock>(toClock<HighResolutionClock>(clock))
{}

} // FBB        
#endif






