]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/testsuite/20_util/duration/requirements/constexpr_functions.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / 20_util / duration / requirements / constexpr_functions.cc
CommitLineData
be58e01d 1// { dg-do compile { target c++11 } }
857d9b7b 2
fbd26352 3// Copyright (C) 2010-2019 Free Software Foundation, Inc.
857d9b7b 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
6bc9506f 8// Free Software Foundation; either version 3, or (at your option)
857d9b7b 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
6bc9506f 17// with this library; see the file COPYING3. If not see
18// <http://www.gnu.org/licenses/>.
857d9b7b 19
c0000147 20#include <chrono>
21#include <testsuite_common_types.h>
857d9b7b 22
c0000147 23namespace __gnu_test
857d9b7b 24{
c0000147 25 struct constexpr_member_functions
26 {
27 template<typename _Ttesttype>
28 void
29 operator()()
30 {
31 struct _Concept
32 {
33 void __constraint()
34 {
32a7faa5 35 constexpr auto v1 __attribute__((unused))
36 = _Ttesttype::min();
37 constexpr auto v2 __attribute__((unused))
38 = _Ttesttype::max();
39 constexpr auto v3 __attribute__((unused))
40 = _Ttesttype::zero();
c0000147 41
42 constexpr _Ttesttype obj { };
32a7faa5 43 constexpr auto v4 __attribute__((unused))
44 = obj.count();
45 constexpr auto v5 __attribute__((unused))
46 = -obj;
47 constexpr auto v6 __attribute__((unused))
48 = +obj;
c0000147 49 }
50 };
857d9b7b 51
c0000147 52 _Concept c;
53 c.__constraint();
54 }
55 };
56}
857d9b7b 57
c0000147 58int main()
59{
60 __gnu_test::constexpr_member_functions test;
61 test.operator()<std::chrono::nanoseconds>();
857d9b7b 62 return 0;
63}