이 질문은 C++과 관련이 있습니다C++에서 조건부 typedef를 사용할 수 있습니까?
Solver < TS, FS>라는 클래스를 선언하는 라이브러리가 있습니다. 솔버는 지역의 값에 따라 (내가 쓴) 다른 클래스 도메인
지금은 회원이 "INT 영역을"많은 도메인이 있습니다
내가하고 싶은 것은의 구성원, 내가 원하는 솔버가 TS와 FS에 대해 다른 인수를 수락하도록합니다. 내가 구조체는 쓸모없는 것 같다, 만약 인해의 범위에 여기, 그러나
Decider<region>::TS
Decider<region>::FS
로 사용
template<int region>
struct Decider
{
if(region==1)
{
typedef TSA TS;
typedef FSA FS;
}
else
if(region==2)
{
typedef TSB TS;
typedef FSB FS;
}
}
나중에 라인을 따라 뭔가 생각했다. 그러나, 나는 이것을하는 더 나은 방법을 생각할 수 없다. 어떤 제안?
모든 다른 TS와 FS는 동일한 인터페이스를 가지고 있습니다. 따라서 내부 코드에 대해 걱정할 필요가 없습니다.
템플릿 인수는 컴파일시 상수 여야합니다. OP가 멤버 변수'int region'을 인수로 사용하기를 원했기 때문에이 솔루션이 필요를 충족시키지 않을까 걱정됩니다 (물론 질문을 오해했을 수도 있습니다.) –
예 .... 그것을 int 영역으로 가지고있는 것이 바람직 할 것입니다. 그러나 저는 컴파일 타임 상수 tooo를 관리 할 수 있다고 생각합니다. 그냥 코드를 길게 만들 것입니다 ....... –
제가 이처럼 할 수 있는지 확인 하시겠습니까? '디 사이더를 사용하여 :: TS; 솔버 해결 자();' –