Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
4.7 kB · 138 lines
C++
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139// boost/timer/timer.hpp -------------------------------------------------------------//
// Copyright Beman Dawes 1994-2007, 2011
// Distributed under the Boost Software License, Version 1.0.// See http://www.boost.org/LICENSE_1_0.txt
#ifndef BOOST_TIMER_TIMER_HPP #define BOOST_TIMER_TIMER_HPP
#include <boost/config/warning_disable.hpp>
#include <boost/timer/config.hpp>#include <boost/chrono/chrono.hpp>#include <boost/cstdint.hpp>#include <string>#include <cstring>#include <ostream>
#include <boost/config/abi_prefix.hpp> // must be the last #include
# if defined(_MSC_VER)# pragma warning(push) // Save warning settings# pragma warning(disable : 4251) // disable warning: class 'std::basic_string<_Elem,_Traits,_Ax>'# endif // needs to have dll-interface...
//--------------------------------------------------------------------------------------//
// TODO:// // * Add BOOST_NOEXCEPT where applicable
//--------------------------------------------------------------------------------------//
namespace boost{namespace timer{ class cpu_timer; class auto_cpu_timer;
typedef boost::int_least64_t nanosecond_type;
struct cpu_times { nanosecond_type wall; nanosecond_type user; nanosecond_type system;
void clear() { wall = user = system = 0LL; } }; const short default_places = 6;
BOOST_TIMER_DECL std::string format(const cpu_times& times, short places, const std::string& format);
BOOST_TIMER_DECL std::string format(const cpu_times& times, short places = default_places);
// cpu_timer -------------------------------------------------------------------------//
class BOOST_TIMER_DECL cpu_timer { public:
// constructor cpu_timer() { start(); }
// observers bool is_stopped() const { return m_is_stopped; } cpu_times elapsed() const; // does not stop() std::string format(short places, const std::string& format) const { return ::boost::timer::format(elapsed(), places, format); } std::string format(short places = default_places) const { return ::boost::timer::format(elapsed(), places); } // actions void start(); void stop(); void resume();
private: cpu_times m_times; bool m_is_stopped; };
// auto_cpu_timer --------------------------------------------------------------------//
class BOOST_TIMER_DECL auto_cpu_timer : public cpu_timer { public:
// Explicit defaults for os are not provided to avoid including <iostream>, which has // high costs even when the standard streams are not actually used. Explicit defaults // for format are not provided to avoid order-of-dynamic-initialization issues with a // std::string.
explicit auto_cpu_timer(short places = default_places); // #1 auto_cpu_timer(short places, const std::string& format); // #2 explicit auto_cpu_timer(const std::string& format); // #3 auto_cpu_timer(std::ostream& os, short places, const std::string& format) // #4 : m_places(places), m_os(&os), m_format(format) { start(); } explicit auto_cpu_timer(std::ostream& os, short places = default_places); // #5 auto_cpu_timer(std::ostream& os, const std::string& format) // #6 : m_places(default_places), m_os(&os), m_format(format) { start(); }
~auto_cpu_timer();
// observers // not particularly useful to users, but allow testing of constructor // postconditions and ease specification of other functionality without resorting // to "for exposition only" private members. std::ostream& ostream() const { return *m_os; } short places() const { return m_places; } const std::string& format_string() const { return m_format; }
// actions void report();
private: short m_places; std::ostream* m_os; // stored as ptr so compiler can generate operator= std::string m_format; }; } // namespace timer} // namespace boost
# if defined(_MSC_VER)# pragma warning(pop) // restore warning settings.# endif
#include <boost/config/abi_suffix.hpp> // pops abi_prefix.hpp pragmas
#endif // BOOST_TIMER_TIMER_HPP