[c++] 사용자 지정 리터럴

C++에서 사용자 지정 리터럴(User-Defined Literal)은 사용자가 새로운 리터럴 접미사를 정의하여 사용자 정의 타입에 대한 새로운 리터럴을 생성하는 기능입니다. 사용자 지정 리터럴은 기존의 리터럴 접미사인 i, f, ull과 비슷한 형태로 동작하며, 사용자 정의 타입을 리터럴 상수로 생성할 수 있습니다.

사용자 지정 리터럴의 형식

사용자 지정 리터럴은 리터럴 값 뒤에 밑줄과 사용자 정의 접미사를 추가하여 정의됩니다.

// 사용자 지정 리터럴의 프로토타입 형식
return_type operator"" _suffix_name (parameter_list);

여기서 return_type은 사용자 정의 리터럴이 반환하는 타입이고, suffix_name은 사용자 정의 리터럴 접미사 이름입니다.

사용자 지정 리터럴의 예시

// 거듭제곱 연산을 수행하는 사용자 정의 리터럴
long double operator"" _squared(long double x) {
    return x * x;
}

// 사용자 정의 리터럴을 사용하여 값을 초기화
long double side_length = 3.5_squared;

위의 예시에서 3.5_squared3.5를 제곱한 값을 리턴하는 사용자 지정 리터럴을 사용한 예시입니다.

사용자 지정 리터럴은 C++11 이후부터 지원되며, 사용자 정의 접미사를 통해 새로운 리터럴을 추가하는 기능을 제공합니다. 사용자 지정 리터럴을 사용하여 코드의 가독성을 향상하고 특정한 동작을 갖는 사용자 정의 타입을 쉽게 다룰 수 있습니다.

참고 자료