brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 533547d Raw
51 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 9// <chrono>10 11// duration12 13// constexpr common_type_t<duration> operator-() const;14 15#include <chrono>16#include <cassert>17#include <ratio>18#include <type_traits>19 20#include "test_macros.h"21 22int main(int, char**)23{24    {25    const std::chrono::minutes m(3);26    std::chrono::minutes m2 = -m;27    assert(m2.count() == -m.count());28    }29#if TEST_STD_VER >= 1130    {31    constexpr std::chrono::minutes m(3);32    constexpr std::chrono::minutes m2 = -m;33    static_assert(m2.count() == -m.count(), "");34    }35#endif36 37// P054838    {39    typedef std::chrono::duration<int, std::ratio<10,10> > D10;40    typedef std::chrono::duration<int, std::ratio< 1, 1> > D1;41    D10 zero(0);42    D10 one(1);43    static_assert( (std::is_same< decltype(-one), decltype(zero-one) >::value), "");44    static_assert( (std::is_same< decltype(zero-one), D1>::value), "");45    static_assert( (std::is_same< decltype(-one),     D1>::value), "");46    static_assert( (std::is_same< decltype(+one),     D1>::value), "");47    }48 49  return 0;50}51