[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부터 허용되었습니다.

이 기능을 사용하면 컴파일 타임에 문자열을 다루는 작업이 가능해지며, 예를 들어 문자열 리터럴을 바탕으로 템플릿 메타프로그래밍을 수행할 수 있습니다.