zoned_traits

zoned_traits (zoned_time의 시간대 기본값 트레이트)

zoned_time이 어떤 시간대를 기본으로 쓸지 지정하는 트레이트예요. <chrono> 헤더, C++20부터.

출처: cppreference

본문

std::chrono::zoned_traitszoned_time이 인자 없이 생성되거나 시간대 지정이 필요할 때, 기본 시간대를 어떻게 얻는지 정의하는 트레이트예요.

template<class TimeZonePtr>
struct zoned_traits;
  • TimeZonePtr에 대한 기본 특수화가 제공되고, 사용자 정의 시간대 포인터 타입에 대해 특수화할 수 있어요.
  • 기본 구현은 TimeZonePtrconst 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이 시간대 인자 없이 생성될 때 내부적으로 이 트레이트를 호출해 기본 시간대를 결정해요. 사용자 정의 시간대 포인터 타입을 쓸 때 이 트레이트를 특수화하면 기본 동작을 바꿀 수 있어요.

더 알아보기 (Learn more)

cppreference