NumeRe v1.1.4
NumeRe: Framework für Numerische Rechnungen
tz.h File Reference
#include "date.h"
#include <algorithm>
#include <atomic>
#include <cassert>
#include <chrono>
#include <istream>
#include <locale>
#include <memory>
#include <mutex>
#include <ostream>
#include <sstream>
#include <stdexcept>
#include <string>
#include <type_traits>
#include <utility>
#include <vector>
Include dependency graph for tz.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  date::detail::nodeduct< T >
 
struct  date::sys_info
 
struct  date::local_info
 
class  date::nonexistent_local_time
 
class  date::ambiguous_local_time
 
struct  date::zoned_traits< T >
 
struct  date::zoned_traits< const time_zone * >
 
class  date::zoned_time< Duration, TimeZonePtr >
 
class  date::time_zone
 
class  date::time_zone_link
 
class  date::leap_second
 
struct  date::tzdb
 
class  date::tzdb_list
 
class  date::tzdb_list::const_iterator
 
class  date::utc_clock
 
struct  date::leap_second_info
 
class  date::tai_clock
 
class  date::gps_clock
 
struct  date::clock_time_conversion< DstClock, SrcClock >
 
struct  date::clock_time_conversion< std::chrono::system_clock, std::chrono::system_clock >
 
struct  date::clock_time_conversion< utc_clock, utc_clock >
 
struct  date::clock_time_conversion< local_t, local_t >
 
struct  date::clock_time_conversion< utc_clock, std::chrono::system_clock >
 
struct  date::clock_time_conversion< std::chrono::system_clock, utc_clock >
 
struct  date::clock_time_conversion< local_t, std::chrono::system_clock >
 
struct  date::clock_time_conversion< std::chrono::system_clock, local_t >
 
struct  date::clock_time_conversion< utc_clock, local_t >
 
struct  date::clock_time_conversion< local_t, utc_clock >
 
struct  date::clock_time_conversion< Clock, Clock >
 
struct  date::ctc_detail::return_clock_time< Clock, TimePoint >
 
struct  date::ctc_detail::return_to_sys< Clock, Duration, class >
 
struct  date::ctc_detail::return_to_sys< Clock, Duration, decltype(Clock::to_sys(declval< time_point< Clock, Duration > const & >()), void()) >
 
struct  date::ctc_detail::return_from_sys< Clock, Duration, class >
 
struct  date::ctc_detail::return_from_sys< Clock, Duration, decltype(Clock::from_sys(declval< time_point< system_clock, Duration > const & >()), void()) >
 
struct  date::ctc_detail::return_to_utc< Clock, Duration, class >
 
struct  date::ctc_detail::return_to_utc< Clock, Duration, decltype(Clock::to_utc(declval< time_point< Clock, Duration > const & >()), void()) >
 
struct  date::ctc_detail::return_from_utc< Clock, Duration, class >
 
struct  date::ctc_detail::return_from_utc< Clock, Duration, decltype(Clock::from_utc(declval< time_point< utc_clock, Duration > const & >()), void()) >
 
struct  date::ctc_detail::return_to_local< Clock, Duration, typename >
 
struct  date::ctc_detail::return_to_local< Clock, Duration, decltype(Clock::to_local(declval< time_point< Clock, Duration > const & >()), void()) >
 
struct  date::ctc_detail::return_from_local< Clock, Duration, typename >
 
struct  date::ctc_detail::return_from_local< Clock, Duration, decltype(Clock::from_local(declval< time_point< local_t, Duration > const & >()), void()) >
 
struct  date::clock_time_conversion< std::chrono::system_clock, SrcClock >
 
struct  date::clock_time_conversion< DstClock, std::chrono::system_clock >
 
struct  date::clock_time_conversion< utc_clock, SrcClock >
 
struct  date::clock_time_conversion< DstClock, utc_clock >
 
struct  date::clock_time_conversion< local_t, SrcClock >
 
struct  date::clock_time_conversion< DstClock, local_t >
 

Namespaces

namespace  date
 
namespace  date::detail
 
namespace  date::ctc_detail
 
namespace  date::clock_cast_detail
 

Macros

#define USE_OS_TZDB   0
 
#define HAS_REMOTE_API   1
 
#define AUTO_DOWNLOAD   HAS_REMOTE_API
 
#define USE_SHELL_API   1
 
#define HAS_DEDUCTION_GUIDES   0
 
#define DATE_API
 

Typedefs

template<typename T >
using date::detail::nodeduct_t = typename nodeduct< T >::type
 
using date::zoned_seconds = zoned_time< std::chrono::seconds >
 
using date::link = time_zone_link
 
using date::leap = leap_second
 
using date::TZ_DB = tzdb
 
template<class Duration >
using date::utc_time = std::chrono::time_point< utc_clock, Duration >
 
using date::utc_seconds = utc_time< std::chrono::seconds >
 
template<class Duration >
using date::tai_time = std::chrono::time_point< tai_clock, Duration >
 
using date::tai_seconds = tai_time< std::chrono::seconds >
 
template<class Duration >
using date::gps_time = std::chrono::time_point< gps_clock, Duration >
 
using date::gps_seconds = gps_time< std::chrono::seconds >
 
template<class Clock , class Duration >
using date::ctc_detail::time_point = std::chrono::time_point< Clock, Duration >
 
template<class Clock , class Duration >
using date::clock_cast_detail::time_point = std::chrono::time_point< Clock, Duration >
 

Enumerations

enum class  date::choose { date::earliest , date::latest }
 

Functions

template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & date::operator<< (std::basic_ostream< CharT, Traits > &os, const sys_info &r)
 
template<class CharT , class Traits >
std::basic_ostream< CharT, Traits > & date::operator<< (std::basic_ostream< CharT, Traits > &os, const local_info &r)
 
const time_zonedate::locate_zone (const std::string &tz_name)
 
const time_zonedate::current_zone ()
 
template<class Duration1 , class Duration2 , class TimeZonePtr >
bool date::operator== (const zoned_time< Duration1, TimeZonePtr > &x, const zoned_time< Duration2, TimeZonePtr > &y)
 
template<class Duration1 , class Duration2 , class TimeZonePtr >
bool date::operator!= (const zoned_time< Duration1, TimeZonePtr > &x, const zoned_time< Duration2, TimeZonePtr > &y)
 
bool date::operator== (const time_zone &x, const time_zone &y) NOEXCEPT
 
bool date::operator< (const time_zone &x, const time_zone &y) NOEXCEPT
 
bool date::operator!= (const time_zone &x, const time_zone &y) NOEXCEPT
 
bool date::operator> (const time_zone &x, const time_zone &y) NOEXCEPT
 
bool date::operator<= (const time_zone &x, const time_zone &y) NOEXCEPT
 
bool date::operator>= (const time_zone &x, const time_zone &y) NOEXCEPT
 
bool date::operator!= (const time_zone_link &x, const time_zone_link &y)
 
bool date::operator> (const time_zone_link &x, const time_zone_link &y)
 
bool date::operator<= (const time_zone_link &x, const time_zone_link &y)
 
bool date::operator>= (const time_zone_link &x, const time_zone_link &y)
 
bool date::operator!= (const leap_second &x, const leap_second &y)
 
bool date::operator> (const leap_second &x, const leap_second &y)
 
bool date::operator<= (const leap_second &x, const leap_second &y)
 
bool date::operator>= (const leap_second &x, const leap_second &y)
 
template<class Duration >
bool date::operator== (const sys_time< Duration > &x, const leap_second &y)
 
template<class Duration >
bool date::operator!= (const leap_second &x, const sys_time< Duration > &y)
 
template<class Duration >
bool date::operator!= (const sys_time< Duration > &x, const leap_second &y)
 
template<class Duration >
bool date::operator> (const leap_second &x, const sys_time< Duration > &y)
 
template<class Duration >
bool date::operator> (const sys_time< Duration > &x, const leap_second &y)
 
template<class Duration >
bool date::operator<= (const leap_second &x, const sys_time< Duration > &y)
 
template<class Duration >
bool date::operator<= (const sys_time< Duration > &x, const leap_second &y)
 
template<class Duration >
bool date::operator>= (const leap_second &x, const sys_time< Duration > &y)
 
template<class Duration >
bool date::operator>= (const sys_time< Duration > &x, const leap_second &y)
 
std::ostream & date::operator<< (std::ostream &os, const tzdb &db)
 
const tzdbdate::get_tzdb ()
 
tzdb_list & date::get_tzdb_list ()
 
const tzdbdate::reload_tzdb ()
 
void date::set_install (const std::string &s)
 
DATE_API std::string date::remote_version ()
 
DATE_API bool date::remote_download (const std::string &version, char *error_buffer=nullptr)
 
DATE_API bool date::remote_install (const std::string &version)
 
template<class T >
T * date::detail::to_raw_pointer (T *p) NOEXCEPT
 
template<class Pointer >
auto date::detail::to_raw_pointer (Pointer p) NOEXCEPT -> decltype(detail::to_raw_pointer(p.operator->()))
 
zoned_time< std::chrono::seconds > date::make_zoned ()
 
template<class Duration >
zoned_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::make_zoned (const sys_time< Duration > &tp)
 
template<class TimeZonePtr , class = typename std::enable_if < std::is_class < typename std::decay < decltype(*detail::to_raw_pointer(std::declval<TimeZonePtr&>())) >::type >{}, ::type >
zoned_time< std::chrono::seconds, TimeZonePtr > date::make_zoned (TimeZonePtr z)
 
zoned_seconds date::make_zoned (const std::string &name)
 
template<class Duration , class TimeZonePtr , class = typename std::enable_if < std::is_class<typename std::decay<decltype(*std::declval<TimeZonePtr&>())>::type>{}, ::type >
zoned_time< typename std::common_type< Duration, std::chrono::seconds >::type, TimeZonePtr > date::make_zoned (TimeZonePtr zone, const local_time< Duration > &tp)
 
template<class Duration , class TimeZonePtr , class = typename std::enable_if < std::is_class<typename std::decay<decltype(*std::declval<TimeZonePtr&>())>::type>{}, ::type >
zoned_time< typename std::common_type< Duration, std::chrono::seconds >::type, TimeZonePtr > date::make_zoned (TimeZonePtr zone, const local_time< Duration > &tp, choose c)
 
template<class Duration >
zoned_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::make_zoned (const std::string &name, const local_time< Duration > &tp)
 
template<class Duration >
zoned_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::make_zoned (const std::string &name, const local_time< Duration > &tp, choose c)
 
template<class Duration , class TimeZonePtr >
zoned_time< Duration, TimeZonePtr > date::make_zoned (TimeZonePtr zone, const zoned_time< Duration, TimeZonePtr > &zt)
 
template<class Duration , class TimeZonePtr >
zoned_time< Duration, TimeZonePtr > date::make_zoned (const std::string &name, const zoned_time< Duration, TimeZonePtr > &zt)
 
template<class Duration , class TimeZonePtr >
zoned_time< Duration, TimeZonePtr > date::make_zoned (TimeZonePtr zone, const zoned_time< Duration, TimeZonePtr > &zt, choose c)
 
template<class Duration , class TimeZonePtr >
zoned_time< Duration, TimeZonePtr > date::make_zoned (const std::string &name, const zoned_time< Duration, TimeZonePtr > &zt, choose c)
 
template<class Duration , class TimeZonePtr , class = typename std::enable_if < std::is_class<typename std::decay<decltype(*std::declval<TimeZonePtr&>())>::type>{}, ::type >
zoned_time< typename std::common_type< Duration, std::chrono::seconds >::type, TimeZonePtr > date::make_zoned (TimeZonePtr zone, const sys_time< Duration > &st)
 
template<class Duration >
zoned_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::make_zoned (const std::string &name, const sys_time< Duration > &st)
 
template<class CharT , class Traits , class Duration , class TimeZonePtr >
std::basic_ostream< CharT, Traits > & date::to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const zoned_time< Duration, TimeZonePtr > &tp)
 
template<class CharT , class Traits , class Duration , class TimeZonePtr >
std::basic_ostream< CharT, Traits > & date::operator<< (std::basic_ostream< CharT, Traits > &os, const zoned_time< Duration, TimeZonePtr > &t)
 
template<class Duration >
std::pair< bool, std::chrono::seconds > date::is_leap_second (date::utc_time< Duration > const &ut)
 
template<class Duration >
leap_second_info date::get_leap_second_info (date::utc_time< Duration > const &ut)
 
template<class CharT , class Traits , class Duration >
std::basic_ostream< CharT, Traits > & date::to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const utc_time< Duration > &t)
 
template<class CharT , class Traits , class Duration >
std::basic_ostream< CharT, Traits > & date::operator<< (std::basic_ostream< CharT, Traits > &os, const utc_time< Duration > &t)
 
template<class Duration , class CharT , class Traits , class Alloc = std::allocator<CharT>>
std::basic_istream< CharT, Traits > & date::from_stream (std::basic_istream< CharT, Traits > &is, const CharT *fmt, utc_time< Duration > &tp, std::basic_string< CharT, Traits, Alloc > *abbrev=nullptr, std::chrono::minutes *offset=nullptr)
 
template<class CharT , class Traits , class Duration >
std::basic_ostream< CharT, Traits > & date::to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const tai_time< Duration > &t)
 
template<class CharT , class Traits , class Duration >
std::basic_ostream< CharT, Traits > & date::operator<< (std::basic_ostream< CharT, Traits > &os, const tai_time< Duration > &t)
 
template<class Duration , class CharT , class Traits , class Alloc = std::allocator<CharT>>
std::basic_istream< CharT, Traits > & date::from_stream (std::basic_istream< CharT, Traits > &is, const CharT *fmt, tai_time< Duration > &tp, std::basic_string< CharT, Traits, Alloc > *abbrev=nullptr, std::chrono::minutes *offset=nullptr)
 
template<class CharT , class Traits , class Duration >
std::basic_ostream< CharT, Traits > & date::to_stream (std::basic_ostream< CharT, Traits > &os, const CharT *fmt, const gps_time< Duration > &t)
 
template<class CharT , class Traits , class Duration >
std::basic_ostream< CharT, Traits > & date::operator<< (std::basic_ostream< CharT, Traits > &os, const gps_time< Duration > &t)
 
template<class Duration , class CharT , class Traits , class Alloc = std::allocator<CharT>>
std::basic_istream< CharT, Traits > & date::from_stream (std::basic_istream< CharT, Traits > &is, const CharT *fmt, gps_time< Duration > &tp, std::basic_string< CharT, Traits, Alloc > *abbrev=nullptr, std::chrono::minutes *offset=nullptr)
 
template<class DstClock , class SrcClock , class Duration >
CONSTCD14 auto date::clock_cast_detail::conv_clock (const time_point< SrcClock, Duration > &t) -> decltype(std::declval< clock_time_conversion< DstClock, SrcClock > >()(t))
 
template<class DstClock , class SrcClock , class Duration >
CONSTCD14 auto date::clock_cast_detail::cc_impl (const time_point< SrcClock, Duration > &t, const time_point< SrcClock, Duration > *) -> decltype(conv_clock< DstClock >(t))
 
template<class DstClock , class SrcClock , class Duration >
CONSTCD14 auto date::clock_cast_detail::cc_impl (const time_point< SrcClock, Duration > &t, const void *) -> decltype(conv_clock< DstClock >(conv_clock< system_clock >(t)))
 
template<class DstClock , class SrcClock , class Duration >
CONSTCD14 auto date::clock_cast_detail::cc_impl (const time_point< SrcClock, Duration > &t,...) -> decltype(conv_clock< DstClock >(conv_clock< utc_clock >(conv_clock< system_clock >(t))))
 
template<class DstClock , class SrcClock , class Duration >
CONSTCD14 auto date::clock_cast (const std::chrono::time_point< SrcClock, Duration > &tp) -> decltype(clock_cast_detail::cc_impl< DstClock >(tp, &tp))
 
template<class Duration >
sys_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::to_sys_time (const utc_time< Duration > &t)
 
template<class Duration >
sys_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::to_sys_time (const tai_time< Duration > &t)
 
template<class Duration >
sys_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::to_sys_time (const gps_time< Duration > &t)
 
template<class Duration >
utc_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::to_utc_time (const sys_time< Duration > &t)
 
template<class Duration >
utc_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::to_utc_time (const tai_time< Duration > &t)
 
template<class Duration >
utc_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::to_utc_time (const gps_time< Duration > &t)
 
template<class Duration >
tai_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::to_tai_time (const sys_time< Duration > &t)
 
template<class Duration >
tai_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::to_tai_time (const utc_time< Duration > &t)
 
template<class Duration >
tai_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::to_tai_time (const gps_time< Duration > &t)
 
template<class Duration >
gps_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::to_gps_time (const sys_time< Duration > &t)
 
template<class Duration >
gps_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::to_gps_time (const utc_time< Duration > &t)
 
template<class Duration >
gps_time< typename std::common_type< Duration, std::chrono::seconds >::type > date::to_gps_time (const tai_time< Duration > &t)
 

Macro Definition Documentation

◆ AUTO_DOWNLOAD

#define AUTO_DOWNLOAD   HAS_REMOTE_API

Definition at line 75 of file tz.h.

◆ DATE_API

#define DATE_API

Definition at line 133 of file tz.h.

◆ HAS_DEDUCTION_GUIDES

#define HAS_DEDUCTION_GUIDES   0

Definition at line 95 of file tz.h.

◆ HAS_REMOTE_API

#define HAS_REMOTE_API   1

Definition at line 55 of file tz.h.

◆ USE_OS_TZDB

#define USE_OS_TZDB   0

Definition at line 47 of file tz.h.

◆ USE_SHELL_API

#define USE_SHELL_API   1

Definition at line 82 of file tz.h.