0
나는 템플릿 함수와 열거 형에 대한 템플릿 사양을 가지고 있습니다. 런타임시 열거 형 값을 기반으로 템플릿 사양을 선택하는 프로그램을 원합니다. 가능한가?템플릿 변수가 아닌 형식 인수로 로컬 변수
다음 코드는 오류가 발생했습니다 :
error C2971: 'Func' : template parameter 'fruit' : 'fruit' : a local variable cannot be used as a non-type argument
코드 :
enum class Fruit
{
Apple,
Orange,
Count
};
template<Fruit>
void Func()
{}
template<>
void Func<Fruit::Apple>()
{
std::cout << "Apple" << std::endl;
}
template<>
void Func<Fruit::Orange>()
{
std::cout << "Orangle" << std::endl;
}
void Foo(Fruit fruit)
{
Func<fruit>(); // error C2971: 'Func' : template parameter 'fruit' : 'fruit' : a local variable cannot be used as a non-type argument
}
int _tmain(int argc, _TCHAR* argv[])
{
Foo(Fruit::Apple);
return 0;
}
를, 그것은 가능 ('switch' 런타임 인수를 찾고 적절한 인스턴스를 호출하십시오. –