std::formatter
std::formatter (std::chrono::year_month_day_last 특수화)
std::chrono::year_month_day_last 값을 포맷할 수 있게 해주는 std::formatter 특수화예요. std::format과 std::print에서 이 타입을 출력할 수 있게 해줘요. C++20부터 있어요.
출처: cppreference
본문
<chrono> 헤더에 정의돼 있고, std::formatter<std::chrono::year_month_day_last> 특수화예요. std::format·std::print 계열에서 year_month_day_last 값을 chrono 형식 지정 문법에 따라 포맷해요.
형식 문자열 안에서 이 타입에 사용할 수 있는 chrono 포맷 지정자는 날짜·시간 관련 문자들을 포함해요. 예:
%Y— 네 자리 연도 (예:2023)%b— 월 약어 (예:Aug)%m— 두 자리 월 (예:08)%B— 전체 월 이름 (예:August)%F—%Y-%m-%d와 동등한 ISO 날짜 형식
기본(형식 지정 없음) 출력은 연·월·last 형태(2023-Aug-last)를 나타내요.
#include <chrono>
#include <format>
#include <iostream>
int main()
{
using namespace std::chrono;
year_month_day_last ymdl{2023y/August/last};
std::cout << std::format("{}", ymdl) << '\n'; // 기본
std::cout << std::format("{:%Y-%b}", ymdl) << '\n'; // 2023-Aug
}
이 특수화 덕분에 year_month_day_last를 포맷 문자열로 유연하게 출력할 수 있어요.