zoned_traits
zoned_traits (zoned_time의 시간대 기본값 트레이트)
zoned_time이 어떤 시간대를 기본으로 쓸지 지정하는 트레이트예요. <chrono> 헤더, C++20부터.
출처: cppreference
본문
std::chrono::zoned_traits는 zoned_time이 인자 없이 생성되거나 시간대 지정이 필요할 때, 기본 시간대를 어떻게 얻는지 정의하는 트레이트예요.
template<class TimeZonePtr>
struct zoned_traits;
TimeZonePtr에 대한 기본 특수화가 제공되고, 사용자 정의 시간대 포인터 타입에 대해 특수화할 수 있어요.- 기본 구현은
TimeZonePtr이const std::chrono::time_zone*일 때,std::chrono::locate_zone이나std::chrono::current_zone으로 기본 시간대를 얻는 방식이에요.
// 기본 특수화 개념
template<> struct zoned_traits<const time_zone*> {
static const time_zone* default_zone();
// locate_zone/get_zone 등
};
보통은 직접 쓰지 않고, zoned_time이 시간대 인자 없이 생성될 때 내부적으로 이 트레이트를 호출해 기본 시간대를 결정해요. 사용자 정의 시간대 포인터 타입을 쓸 때 이 트레이트를 특수화하면 기본 동작을 바꿀 수 있어요.