146035553Spatrick// -*- C++ -*- 2*4bdff4beSrobert//===----------------------------------------------------------------------===// 346035553Spatrick// 446035553Spatrick// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 546035553Spatrick// See https://llvm.org/LICENSE.txt for license information. 646035553Spatrick// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 746035553Spatrick// 846035553Spatrick//===----------------------------------------------------------------------===// 946035553Spatrick 1046035553Spatrick#ifndef _LIBCPP_CTIME 1146035553Spatrick#define _LIBCPP_CTIME 1246035553Spatrick 1346035553Spatrick/* 1446035553Spatrick ctime synopsis 1546035553Spatrick 1646035553SpatrickMacros: 1746035553Spatrick 1846035553Spatrick NULL 1946035553Spatrick CLOCKS_PER_SEC 2046035553Spatrick TIME_UTC // C++17 2146035553Spatrick 2246035553Spatricknamespace std 2346035553Spatrick{ 2446035553Spatrick 2546035553SpatrickTypes: 2646035553Spatrick 2746035553Spatrick clock_t 2846035553Spatrick size_t 2946035553Spatrick time_t 3046035553Spatrick tm 3146035553Spatrick timespec // C++17 3246035553Spatrick 3346035553Spatrickclock_t clock(); 3446035553Spatrickdouble difftime(time_t time1, time_t time0); 3546035553Spatricktime_t mktime(tm* timeptr); 3646035553Spatricktime_t time(time_t* timer); 3746035553Spatrickchar* asctime(const tm* timeptr); 3846035553Spatrickchar* ctime(const time_t* timer); 3946035553Spatricktm* gmtime(const time_t* timer); 4046035553Spatricktm* localtime(const time_t* timer); 4146035553Spatricksize_t strftime(char* restrict s, size_t maxsize, const char* restrict format, 4246035553Spatrick const tm* restrict timeptr); 4346035553Spatrickint timespec_get( struct timespec *ts, int base); // C++17 4446035553Spatrick} // std 4546035553Spatrick 4646035553Spatrick*/ 4746035553Spatrick 48*4bdff4beSrobert#include <__assert> // all public C++ headers provide the assertion handler 4946035553Spatrick#include <__config> 50*4bdff4beSrobert 51*4bdff4beSrobert// <time.h> is not provided by libc++ 52*4bdff4beSrobert#if __has_include(<time.h>) 5346035553Spatrick# include <time.h> 54*4bdff4beSrobert# ifdef _LIBCPP_TIME_H 55*4bdff4beSrobert# error "If libc++ starts defining <time.h>, the __has_include check should move to libc++'s <time.h>" 56*4bdff4beSrobert# endif 57*4bdff4beSrobert#endif 5846035553Spatrick 5946035553Spatrick#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 6046035553Spatrick# pragma GCC system_header 6146035553Spatrick#endif 6246035553Spatrick 6346035553Spatrick_LIBCPP_BEGIN_NAMESPACE_STD 6446035553Spatrick 6576d0caaeSpatrickusing ::clock_t _LIBCPP_USING_IF_EXISTS; 6676d0caaeSpatrickusing ::size_t _LIBCPP_USING_IF_EXISTS; 6776d0caaeSpatrickusing ::time_t _LIBCPP_USING_IF_EXISTS; 6876d0caaeSpatrickusing ::tm _LIBCPP_USING_IF_EXISTS; 69*4bdff4beSrobert#if _LIBCPP_STD_VER > 14 7076d0caaeSpatrickusing ::timespec _LIBCPP_USING_IF_EXISTS; 7146035553Spatrick#endif 7276d0caaeSpatrickusing ::clock _LIBCPP_USING_IF_EXISTS; 7376d0caaeSpatrickusing ::difftime _LIBCPP_USING_IF_EXISTS; 7476d0caaeSpatrickusing ::mktime _LIBCPP_USING_IF_EXISTS; 7576d0caaeSpatrickusing ::time _LIBCPP_USING_IF_EXISTS; 7676d0caaeSpatrickusing ::asctime _LIBCPP_USING_IF_EXISTS; 7776d0caaeSpatrickusing ::ctime _LIBCPP_USING_IF_EXISTS; 7876d0caaeSpatrickusing ::gmtime _LIBCPP_USING_IF_EXISTS; 7976d0caaeSpatrickusing ::localtime _LIBCPP_USING_IF_EXISTS; 8076d0caaeSpatrickusing ::strftime _LIBCPP_USING_IF_EXISTS; 81*4bdff4beSrobert#if _LIBCPP_STD_VER > 14 8276d0caaeSpatrickusing ::timespec_get _LIBCPP_USING_IF_EXISTS; 8346035553Spatrick#endif 8446035553Spatrick 8546035553Spatrick_LIBCPP_END_NAMESPACE_STD 8646035553Spatrick 8746035553Spatrick#endif // _LIBCPP_CTIME 88