반응형
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
반응형
'Program Club' 카테고리의 다른 글
| gcc -ggdb와 gcc -g의 차이점은 무엇입니까? (0) | 2020.10.19 |
|---|---|
| 가상 소멸자는 상속됩니까? (0) | 2020.10.19 |
| JavaScript에서 confirm ()의 기본 제목을 변경 하시겠습니까? (0) | 2020.10.19 |
| 핸들러 란? (0) | 2020.10.19 |
| 자바 스크립트에서 문자열을 long으로 변환하는 방법은 무엇입니까? (0) | 2020.10.19 |