xref: /llvm-project-15.0.7/libcxx/include/ctime (revision 385cc25a)
13e519524SHoward Hinnant// -*- C++ -*-
2eb8650a7SLouis Dionne//===----------------------------------------------------------------------===//
33e519524SHoward Hinnant//
457b08b09SChandler Carruth// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
557b08b09SChandler Carruth// See https://llvm.org/LICENSE.txt for license information.
657b08b09SChandler Carruth// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
73e519524SHoward Hinnant//
83e519524SHoward Hinnant//===----------------------------------------------------------------------===//
93e519524SHoward Hinnant
103e519524SHoward Hinnant#ifndef _LIBCPP_CTIME
113e519524SHoward Hinnant#define _LIBCPP_CTIME
123e519524SHoward Hinnant
133e519524SHoward Hinnant/*
143e519524SHoward Hinnant    ctime synopsis
153e519524SHoward Hinnant
163e519524SHoward HinnantMacros:
173e519524SHoward Hinnant
183e519524SHoward Hinnant    NULL
193e519524SHoward Hinnant    CLOCKS_PER_SEC
20deb471faSMarshall Clow    TIME_UTC // C++17
213e519524SHoward Hinnant
223e519524SHoward Hinnantnamespace std
233e519524SHoward Hinnant{
243e519524SHoward Hinnant
253e519524SHoward HinnantTypes:
263e519524SHoward Hinnant
273e519524SHoward Hinnant    clock_t
283e519524SHoward Hinnant    size_t
293e519524SHoward Hinnant    time_t
303e519524SHoward Hinnant    tm
31deb471faSMarshall Clow    timespec // C++17
323e519524SHoward Hinnant
333e519524SHoward Hinnantclock_t clock();
343e519524SHoward Hinnantdouble difftime(time_t time1, time_t time0);
353e519524SHoward Hinnanttime_t mktime(tm* timeptr);
363e519524SHoward Hinnanttime_t time(time_t* timer);
373e519524SHoward Hinnantchar* asctime(const tm* timeptr);
383e519524SHoward Hinnantchar* ctime(const time_t* timer);
393e519524SHoward Hinnanttm*    gmtime(const time_t* timer);
403e519524SHoward Hinnanttm* localtime(const time_t* timer);
413e519524SHoward Hinnantsize_t strftime(char* restrict s, size_t maxsize, const char* restrict format,
423e519524SHoward Hinnant                const tm* restrict timeptr);
43deb471faSMarshall Clowint timespec_get( struct timespec *ts, int base); // C++17
443e519524SHoward Hinnant}  // std
453e519524SHoward Hinnant
463e519524SHoward Hinnant*/
473e519524SHoward Hinnant
48*385cc25aSLouis Dionne#include <__assert> // all public C++ headers provide the assertion handler
493e519524SHoward Hinnant#include <__config>
503e519524SHoward Hinnant#include <time.h>
513e519524SHoward Hinnant
52073458b1SHoward Hinnant#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
533e519524SHoward Hinnant#  pragma GCC system_header
54073458b1SHoward Hinnant#endif
553e519524SHoward Hinnant
563e519524SHoward Hinnant_LIBCPP_BEGIN_NAMESPACE_STD
573e519524SHoward Hinnant
58a9c9183cSLouis Dionneusing ::clock_t _LIBCPP_USING_IF_EXISTS;
59a9c9183cSLouis Dionneusing ::size_t _LIBCPP_USING_IF_EXISTS;
60a9c9183cSLouis Dionneusing ::time_t _LIBCPP_USING_IF_EXISTS;
61a9c9183cSLouis Dionneusing ::tm _LIBCPP_USING_IF_EXISTS;
6221f73d58SLouis Dionne#if _LIBCPP_STD_VER > 14
63a9c9183cSLouis Dionneusing ::timespec _LIBCPP_USING_IF_EXISTS;
64deb471faSMarshall Clow#endif
65a9c9183cSLouis Dionneusing ::clock _LIBCPP_USING_IF_EXISTS;
66a9c9183cSLouis Dionneusing ::difftime _LIBCPP_USING_IF_EXISTS;
67a9c9183cSLouis Dionneusing ::mktime _LIBCPP_USING_IF_EXISTS;
68a9c9183cSLouis Dionneusing ::time _LIBCPP_USING_IF_EXISTS;
69a9c9183cSLouis Dionneusing ::asctime _LIBCPP_USING_IF_EXISTS;
70a9c9183cSLouis Dionneusing ::ctime _LIBCPP_USING_IF_EXISTS;
71a9c9183cSLouis Dionneusing ::gmtime _LIBCPP_USING_IF_EXISTS;
72a9c9183cSLouis Dionneusing ::localtime _LIBCPP_USING_IF_EXISTS;
73a9c9183cSLouis Dionneusing ::strftime _LIBCPP_USING_IF_EXISTS;
7421f73d58SLouis Dionne#if _LIBCPP_STD_VER > 14
75a9c9183cSLouis Dionneusing ::timespec_get _LIBCPP_USING_IF_EXISTS;
76deb471faSMarshall Clow#endif
773e519524SHoward Hinnant
783e519524SHoward Hinnant_LIBCPP_END_NAMESPACE_STD
793e519524SHoward Hinnant
803e519524SHoward Hinnant#endif // _LIBCPP_CTIME
81