1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // stopclock_perf.cpp ---------------------------------------------------//
- // Copyright 2009 Vicente J. Botet Escriba
- // Copyright 2009 Howard Hinnant
- // Distributed under the Boost Software License, Version 1.0.
- // See http://www.boost.org/LICENSE_1_0.txt
- // See http://www.boost.org/libs/chrono for documentation.
- #ifndef BOOST_CHRONO_CLOCK_NAME_HPP
- #define BOOST_CHRONO_CLOCK_NAME_HPP
- #include <boost/chrono/chrono.hpp>
- #include <boost/type_traits/is_same.hpp>
- template <typename Clock,
- bool = boost::is_same<Clock, boost::chrono::system_clock>::value,
- #ifdef BOOST_CHRONO_HAS_CLOCK_STEADY
- bool = boost::is_same<Clock, boost::chrono::steady_clock>::value,
- #else
- bool = false,
- #endif
- bool = boost::is_same<Clock, boost::chrono::high_resolution_clock>::value
- >
- struct name;
- template <typename Clock>
- struct name<Clock, false, false, false> {
- static const char* apply() { return "unknown clock";}
- };
- template <typename Clock>
- struct name<Clock, true, false, false> {
- static const char* apply() { return "system_clock";}
- };
- template <typename Clock>
- struct name<Clock, false, true, false> {
- static const char* apply() { return "steady_clock";}
- };
- template <typename Clock>
- struct name<Clock, false, false, true> {
- static const char* apply() { return "high_resolution_clock";}
- };
- template <typename Clock>
- struct name<Clock, false, true, true> {
- static const char* apply() { return "steady_clock and high_resolution_clock";}
- };
- template <typename Clock>
- struct name<Clock, true, false, true> {
- static const char* apply() { return "system_clock and high_resolution_clock";}
- };
- template <typename Clock>
- struct name<Clock, true, true, false> {
- static const char* apply() { return "system_clock and steady_clock";}
- };
- template <typename Clock>
- struct name<Clock, true, true, true> {
- static const char* apply() { return "system_clock, steady_clock and high_resolution_clock";}
- };
- #endif
|