[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_squared
는 3.5
를 제곱한 값을 리턴하는 사용자 지정 리터럴을 사용한 예시입니다.
사용자 지정 리터럴은 C++11 이후부터 지원되며, 사용자 정의 접미사를 통해 새로운 리터럴을 추가하는 기능을 제공합니다. 사용자 지정 리터럴을 사용하여 코드의 가독성을 향상하고 특정한 동작을 갖는 사용자 정의 타입을 쉽게 다룰 수 있습니다.