[c++] 문자열 리터럴의 클래스 템플릿 매개변수
예를 들어, 다음은 문자열 리터럴을 매개변수로 사용하는 클래스 템플릿의 간단한 예제입니다:
template <const char* str>
struct MyString {
static void Print() {
std::cout << str << std::endl;
}
};
int main() {
MyString<"Hello, World!">::Print();
return 0;
}
이 예제에서 MyString
클래스 템플릿은 const char*
형의 문자열 리터럴을 매개변수로 사용합니다. 이를 통해 MyString<"Hello, World!">
을 통해 문장을 출력할 수 있습니다.
이러한 문자열 리터럴을 클래스 템플릿 매개변수로 사용하는 것은 C++17부터 허용되었습니다.
이 기능을 사용하면 컴파일 타임에 문자열을 다루는 작업이 가능해지며, 예를 들어 문자열 리터럴을 바탕으로 템플릿 메타프로그래밍을 수행할 수 있습니다.