summaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/std/time/time_zone/requirements.cc
blob: 9bbe3193b2d2d4b73e1cca4ac695f98f2ba04081 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// { dg-options "-std=gnu++20" }
// { dg-do compile { target c++20 } }
// { dg-require-effective-target cxx11_abi }

#include <chrono>

using std::chrono::time_zone;

static_assert( std::is_move_constructible_v<time_zone> );
static_assert( std::is_move_assignable_v<time_zone> );

static_assert( ! std::is_default_constructible_v<time_zone> );
static_assert( ! std::is_copy_constructible_v<time_zone> );
static_assert( ! std::is_copy_assignable_v<time_zone> );

extern const time_zone* tz;

static_assert( std::is_same_v<decltype(tz->name()), std::string_view> );
static_assert( noexcept(tz->name()) );

static_assert( std::is_same_v<decltype(*tz == *tz), bool> );
static_assert( noexcept(*tz == *tz) );

static_assert( std::is_same_v<decltype(*tz <=> *tz), std::strong_ordering> );
static_assert( noexcept(*tz <=> *tz) );