📄 clockcyclecounter.h
字号:
/***************************************************************************** ClockCycleCounter.h Copyright (c) 2003 Laurent de SorasInstrumentation class, for accurate time interval measurement. You may haveto modify the implementation to adapt it to your system and/or compiler.--- Legal stuff ---This library is free software; you can redistribute it and/ormodify it under the terms of the GNU Lesser General PublicLicense as published by the Free Software Foundation; eitherversion 2.1 of the License, or (at your option) any later version.This library is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNULesser General Public License for more details.You should have received a copy of the GNU Lesser General PublicLicense along with this library; if not, write to the Free SoftwareFoundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA*Tab=3***********************************************************************/#if ! defined (stopwatch_ClockCycleCounter_HEADER_INCLUDED)#define stopwatch_ClockCycleCounter_HEADER_INCLUDED#if defined (_MSC_VER) #pragma once #pragma warning (4 : 4250) // "Inherits via dominance."#endif/*\\\ INCLUDE FILES \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
#include "def.h"#include "Int64.h"namespace stopwatch{class ClockCycleCounter{/*\\\ PUBLIC \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/public: ClockCycleCounter (); stopwatch_FORCEINLINE void
start (); stopwatch_FORCEINLINE void
stop_lap (); Int64 get_time_total () const;
Int64 get_time_best_lap () const;/*\\\ PROTECTED \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/protected:/*\\\ PRIVATE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/private:
void compute_clk_mul ();
void compute_measure_time_total ();
void compute_measure_time_lap ();
static void spend_time ();
static stopwatch_FORCEINLINE Int64
read_clock_counter ();
Int64 _start_time; Int64 _state;
Int64 _best_score;
static Int64 _measure_time_total;
static Int64 _measure_time_lap;
static int _clk_mul;
static bool _init_flag;/*\\\ FORBIDDEN MEMBER FUNCTIONS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/private: ClockCycleCounter (const ClockCycleCounter &other); ClockCycleCounter &
operator = (const ClockCycleCounter &other); bool operator == (const ClockCycleCounter &other); bool operator != (const ClockCycleCounter &other);}; // class ClockCycleCounter} // namespace stopwatch#include "ClockCycleCounter.hpp"#endif // stopwatch_ClockCycleCounter_HEADER_INCLUDED/*\\\ EOF \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -