brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · 82dfa65 Raw
58 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8// UNSUPPORTED: c++03, c++11, c++14, c++179 10// <chrono>11// class year_month_day;12 13//  year_month_day() = default;14//  constexpr year_month_day(const chrono::year& y, const chrono::month& m,15//                                   const chrono::day& d) noexcept;16//17//  Effects:  Constructs an object of type year_month_day by initializing18//                y_ with y, m_ with m, and d_ with d.19//20//  constexpr chrono::year   year() const noexcept;21//  constexpr chrono::month month() const noexcept;22//  constexpr chrono::day     day() const noexcept;23//  constexpr bool             ok() const noexcept;24 25#include <chrono>26#include <type_traits>27#include <cassert>28 29#include "test_macros.h"30 31int main(int, char**)32{33    using year           = std::chrono::year;34    using month          = std::chrono::month;35    using day            = std::chrono::day;36    using year_month_day = std::chrono::year_month_day;37 38    ASSERT_NOEXCEPT(year_month_day{});39    ASSERT_NOEXCEPT(year_month_day{year{1}, month{1}, day{1}});40 41    constexpr month January = std::chrono::January;42 43    constexpr year_month_day ym0{};44    static_assert( ym0.year()  == year{},  "");45    static_assert( ym0.month() == month{}, "");46    static_assert( ym0.day()   == day{},   "");47    static_assert(!ym0.ok(),               "");48 49    constexpr year_month_day ym1{year{2019}, January, day{12}};50    static_assert( ym1.year()  == year{2019}, "");51    static_assert( ym1.month() == January,    "");52    static_assert( ym1.day()   == day{12},    "");53    static_assert( ym1.ok(),                  "");54 55 56  return 0;57}58