posix_time_config.hpp
来自「CGAL is a collaborative effort of severa」· HPP 代码 · 共 163 行
HPP
163 行
#ifndef POSIX_TIME_CONFIG_HPP___#define POSIX_TIME_CONFIG_HPP___/* Copyright (c) 2002,2003 CrystalClear Software, Inc. * Use, modification and distribution is subject to the * Boost Software License, Version 1.0. (See accompanying * file LICENSE-1.0 or http://www.boost.org/LICENSE-1.0) * Author: Jeff Garland, Bart Garst * $Date: 2004/05/23 10:39:29 $ */#include "boost/date_time/time_duration.hpp"#include "boost/date_time/time_resolution_traits.hpp"#include "boost/date_time/gregorian/gregorian_types.hpp"#include "boost/date_time/wrapping_int.hpp"#include "boost/limits.hpp"#include "boost/date_time/compiler_config.hpp"#include "boost/cstdint.hpp"#include <cmath>#include <cstdlib> //for MCW 7.2 std::abs(long long)namespace boost {namespace posix_time {//Remove the following line if you want 64 bit millisecond resolution time//#define BOOST_GDTL_POSIX_TIME_STD_CONFIG#ifdef BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG // set up conditional test compilations#define BOOST_DATE_TIME_HAS_MILLISECONDS#define BOOST_DATE_TIME_HAS_MICROSECONDS#define BOOST_DATE_TIME_HAS_NANOSECONDS typedef date_time::time_resolution_traits<boost::date_time::time_resolution_traits_adapted64_impl, boost::date_time::nano, 1000000000, 9 > time_res_traits;#else // set up conditional test compilations#define BOOST_DATE_TIME_HAS_MILLISECONDS#define BOOST_DATE_TIME_HAS_MICROSECONDS#undef BOOST_DATE_TIME_HAS_NANOSECONDS typedef date_time::time_resolution_traits< boost::date_time::time_resolution_traits_adapted64_impl, boost::date_time::micro, 1000000, 6 > time_res_traits;// #undef BOOST_DATE_TIME_HAS_MILLISECONDS// #undef BOOST_DATE_TIME_HAS_MICROSECONDS// #undef BOOST_DATE_TIME_HAS_NANOSECONDS// typedef date_time::time_resolution_traits<boost::int64_t, boost::date_time::tenth, // 10, 0 > time_res_traits;#endif //! Base time duration type /*! \ingroup time_basics */ class time_duration : public date_time::time_duration<time_duration, time_res_traits> { public: typedef time_res_traits rep_type; typedef time_res_traits::day_type day_type; typedef time_res_traits::hour_type hour_type; typedef time_res_traits::min_type min_type; typedef time_res_traits::sec_type sec_type; typedef time_res_traits::fractional_seconds_type fractional_seconds_type; typedef time_res_traits::tick_type tick_type; typedef time_res_traits::impl_type impl_type; time_duration(hour_type hour, min_type min, sec_type sec, fractional_seconds_type fs=0) : date_time::time_duration<time_duration, time_res_traits>(hour,min,sec,fs) {} time_duration() : date_time::time_duration<time_duration, time_res_traits>(0,0,0) {} //! Construct from special_values time_duration(boost::date_time::special_values sv) : date_time::time_duration<time_duration, time_res_traits>(sv) {} //Give duration access to ticks constructor -- hide from users friend class date_time::time_duration<time_duration, time_res_traits>; private: explicit time_duration(impl_type ticks) : date_time::time_duration<time_duration, time_res_traits>(ticks) {} };#ifdef BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG //! Simple implementation for the time rep struct simple_time_rep { typedef gregorian::date date_type; typedef time_duration time_duration_type; simple_time_rep(date_type d, time_duration_type tod) : day(d), time_of_day(tod) {} date_type day; time_duration_type time_of_day; bool is_special()const { return(is_pos_infinity() || is_neg_infinity() || is_not_a_date_time()); } bool is_pos_infinity()const { return(day.is_pos_infinity() || time_of_day.is_pos_infinity()); } bool is_neg_infinity()const { return(day.is_neg_infinity() || time_of_day.is_neg_infinity()); } bool is_not_a_date_time()const { return(day.is_not_a_date() || time_of_day.is_not_a_date_time()); } }; class posix_time_system_config { public: typedef simple_time_rep time_rep_type; typedef gregorian::date date_type; typedef gregorian::date_duration date_duration_type; typedef time_duration time_duration_type; typedef time_res_traits::tick_type int_type; typedef time_res_traits resolution_traits;#if (defined(BOOST_DATE_TIME_NO_MEMBER_INIT)) //help bad compilers #else BOOST_STATIC_CONSTANT(boost::int64_t, tick_per_second = 1000000000);#endif };#else class millisec_posix_time_system_config { public: typedef boost::int64_t time_rep_type; //typedef time_res_traits::tick_type time_rep_type; typedef gregorian::date date_type; typedef gregorian::date_duration date_duration_type; typedef time_duration time_duration_type; typedef time_res_traits::tick_type int_type; typedef time_res_traits::impl_type impl_type; typedef time_res_traits resolution_traits;#if (defined(BOOST_DATE_TIME_NO_MEMBER_INIT)) //help bad compilers #else BOOST_STATIC_CONSTANT(boost::int64_t, tick_per_second = 1000000);#endif };#endif} }//namespace posix_time#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?