1b82dcb62SLouis Dionne //===----------------------------------------------------------------------===// 2b82dcb62SLouis Dionne // 3b82dcb62SLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4b82dcb62SLouis Dionne // See https://llvm.org/LICENSE.txt for license information. 5b82dcb62SLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6b82dcb62SLouis Dionne // 7b82dcb62SLouis Dionne //===----------------------------------------------------------------------===// 8b82dcb62SLouis Dionne // UNSUPPORTED: c++03, c++11, c++14, c++17 9b82dcb62SLouis Dionne 10b82dcb62SLouis Dionne // <chrono> 11b82dcb62SLouis Dionne 12b82dcb62SLouis Dionne // template <class Duration> class hh_mm_ss; 13b82dcb62SLouis Dionne // If Duration is not an instance of duration, the program is ill-formed. 14b82dcb62SLouis Dionne 15b82dcb62SLouis Dionne #include <chrono> 16b82dcb62SLouis Dionne #include <string> 17b82dcb62SLouis Dionne #include <cassert> 18b82dcb62SLouis Dionne #include "test_macros.h" 19b82dcb62SLouis Dionne 20b82dcb62SLouis Dionne struct A {}; 21b82dcb62SLouis Dionne main(int,char **)22b82dcb62SLouis Dionneint main(int, char**) 23b82dcb62SLouis Dionne { 24*9bb9ec38SLouis Dionne std::chrono::hh_mm_ss<void> h0; // expected-error-re@*:* {{static assertion failed{{.*}}template parameter of hh_mm_ss must be a std::chrono::duration}} 25*9bb9ec38SLouis Dionne std::chrono::hh_mm_ss<int> h1; // expected-error-re@*:* {{static assertion failed{{.*}}template parameter of hh_mm_ss must be a std::chrono::duration}} 26*9bb9ec38SLouis Dionne std::chrono::hh_mm_ss<std::string> h2; // expected-error-re@*:* {{static assertion failed{{.*}}template parameter of hh_mm_ss must be a std::chrono::duration}} 27*9bb9ec38SLouis Dionne std::chrono::hh_mm_ss<A> h3; // expected-error-re@*:* {{static assertion failed{{.*}}template parameter of hh_mm_ss must be a std::chrono::duration}} 28b82dcb62SLouis Dionne 29b82dcb62SLouis Dionne return 0; 30b82dcb62SLouis Dionne } 31