template <int parameter> class MyClass
위의 템플릿 전문성은 무엇입니까? 나는 그렇게 생각하지 않지만 확실하지는 않습니다. 템플릿이 함수로 인수를받을 수 있다는 것을 몰랐습니다. 인수가 저장되는 위치는 어디입니까?이것은 템플릿 전문 분야입니까?
template <int parameter> class MyClass
위의 템플릿 전문성은 무엇입니까? 나는 그렇게 생각하지 않지만 확실하지는 않습니다. 템플릿이 함수로 인수를받을 수 있다는 것을 몰랐습니다. 인수가 저장되는 위치는 어디입니까?이것은 템플릿 전문 분야입니까?
템플릿 매개 변수는 반드시 숫자 일 필요는 없습니다. 숫자도 가능합니다. 예를 들어 std::array
은 배열 크기로 size_t
유형의 매개 변수를 사용합니다.
귀하의 경우, 클래스 템플릿은 int
유형의 매개 변수를 사용합니다. 이는 완전히 정상입니다. 다음은 그러한 매개 변수를 사용하는 방법의 예입니다.
template <int param> struct MyClass {
int array[param]; // param is a compile-time constant.
};
int main() {
MyClass<5> m;
m.array[3] = 8; // indexes 0..4 are allowed.
return 0;
}
그들의 인수는 유형 정보 내에 저장됩니다.
아니요, 템플릿 전문 분야가 아닙니다. 이것 좀 봐 :
template <int, int> class MyClass; // <-- primary template
template <int> class MyClass<int, 4>; // <-- partial specialization
template <> class MyClass<5, 4>; // <-- specialization
인수는 어디에 저장됩니까? RAM에 있음. 컴파일하는 동안. –