1 // { dg-do compile { target c++11 } } 2 3 // Copyright (C) 2009-2019 Free Software Foundation, Inc. 4 // 5 // This file is part of the GNU ISO C++ Library. This library is free 6 // software; you can redistribute it and/or modify it under the 7 // terms of the GNU General Public License as published by the 8 // Free Software Foundation; either version 3, or (at your option) 9 // any later version. 10 11 // This library is distributed in the hope that it will be useful, 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 // GNU General Public License for more details. 15 16 // You should have received a copy of the GNU General Public License along 17 // with this library; see the file COPYING3. If not see 18 // <http://www.gnu.org/licenses/>. 19 20 #include <chrono> 21 22 class ClockTime 23 { 24 typedef std::chrono::hours hours; 25 typedef std::chrono::minutes minutes; 26 typedef std::chrono::seconds seconds; 27 28 public: 29 hours hours_; 30 minutes minutes_; 31 seconds seconds_; 32 33 template<typename Rep, typename Period> 34 explicit ClockTime(const std::chrono::duration<Rep,Period> & d)35 ClockTime(const std::chrono::duration<Rep, Period>& d) 36 : hours_ (std::chrono::duration_cast<hours> (d)), 37 minutes_(std::chrono::duration_cast<minutes>(d % hours(1))), 38 seconds_(std::chrono::duration_cast<seconds>(d % minutes(1))) { } 39 }; 40 41 // DR 934. test01()42void test01() 43 { 44 std::chrono::duration<int> d; 45 ClockTime ct(d); 46 } 47