Program Club

C ++ 템플릿 클래스를 전달하는 방법은 무엇입니까?

proclub 2020. 10. 19. 13:04
반응형

C ++ 템플릿 클래스를 전달하는 방법은 무엇입니까?


다음과 같은 템플릿 클래스가 제공됩니다.

template<typename Type, typename IDType=typename Type::IDType>
class Mappings
{
public:
    ...
    Type valueFor(const IDType& id) { // return value }
    ...
};

누군가가 헤더 파일에서이 클래스를 어떻게 앞으로 선언 할 수 있습니까?


이것은 당신이 그것을하는 방법입니다.

template<typename Type, typename IDType=typename Type::IDType>
class Mappings;

template<typename Type, typename IDType>
class Mappings
{
public:
    ...
    Type valueFor(const IDType& id) { // return value }
    ...
};

기본값은 실제 정의가 아닌 정방향 선언에 있습니다.


템플릿의 첫 번째 선언에 대해서만 템플릿에 대한 기본 인수를 선언 할 수 있습니다. 사용자가 클래스 템플릿을 전달하도록 허용하려면 전달 헤더를 제공해야합니다. 기본값을 사용하여 다른 사람의 클래스 템플릿을 전달하고 싶다면 운이 좋지 않습니다!

참고 URL : https://stackoverflow.com/questions/13848451/how-to-forward-declare-ac-template-class

반응형