추가 템플릿 매개 변수를 가져 오기 위해 템플릿 클래스를 특수화 할 수 있습니까? 예를 들어C++은 추가 템플릿 매개 변수를 가져 오기 위해 템플릿 클래스를 특수화합니다.
:
template <typename T>
struct X {
void foo() { cerr << "Generic" << endl;}
};
template <>
template <bool b>
struct X<int> {
void foo() { cerr << "Specialization" << endl;}
};
내가 g의 ++과 위의 작품을 만들 수 없습니다,하지만 어쩌면이 일을 몇 가지 트릭이있다.
편집 :에있는 경우에만 X<int>.
의 기능이기 때문에 나는, 기본 템플릿 X에 템플릿 <bool b>
를 이동하고 싶지 않아, 나는 사용자가 임의의 값을 지정할 필요가 없습니다 수 있도록 할 수있는 방법이 그것을 위해? 나는이 경로를 따라 가지 않는 접근법 인 을 정말로 원할 것이다.
template <typename T>
struct Foo
{
typedef typename T::type type;
// work with "type"
void static print() { std::cout << T::message << std::endl; }
}
가 그런 특성 클래스 정의 :
부분 템플릿 전문화에 대해 들었습니까? –
"* 필요한 경우 사용자가 값을 지정할 필요가 없도록 할 수있는 방법이 있습니까? *"예 - 기본 템플릿 매개 변수입니다. 예 : '템플리트'. –
ildjarn
@ildjarn이 말했듯이 대부분의 경우 bool 이외의 다른 유형을 사용하는 것이 좋습니다. 'mytempl'대'myempl '는 보통 mytempl 과 mytemplat의 차이보다 의미가 있습니다. –