template<typename FilterComponent, typename ...FilterComponents>
std::bitset<components_count> component_impl(std::bitset<components_count> &b){
b.set(FilterComponent::get_id());
return component_impl<FilterComponents...>(b); //ambiguous
}
template<typename FilterComponent>
std::bitset<components_count> component_impl(std::bitset<components_count> &b){
b.set(FilterComponent::get_id());
return b;
}
template<typename ...FilterComponents>
std::bitset<components_count> component_mask(){
std::bitset<components_count> b;
component_impl<FilterComponents...>(b);
return b;
}
이 함수가 모호한 이유는 무엇입니까? component_impl
이 하나 개의 유형 이름으로 호출 될 때 나는 그것이 모호, component_mask<Foo,Bar,Baz>();
왜이 가변 함수 호출이 모호한가요?
error: call to member function 'component_impl' is ambiguous
return component_impl<FilterComponents...>(b);
Testcase please ...... 모든 질문에 대해 왜 테스트 케이스를 요청해야합니까? 왜 그 중요성을 이해하기가 어렵습니까? 그리고 왜 아무도 인터넷에 게시하기 전에 그것들을 구성하지 않습니까? 아우 !!! –
@ LightnessRacesinOrbit 좋아, 잠시만 기다려주세요. –
'FilterComponents'가 하나의 요소만을 가지고있을 때, 두 함수 템플릿은 똑같은 템플릿 인자로 인스턴스화 될 수 있습니다. – 0x499602D2