Windows에서 일부 템플릿 코드를 이식하는 중이며 iPhone 3.2 SDK에서 일부 컴파일러 차이가 발생합니다. 클래스 템플릿의 멤버 함수 내부iPhone SDK 3.2에서 템플릿 컴파일 오류가 발생했습니다.
원본 코드는 다음과 같습니다 BinarySearch 다른 템플릿에서 상속하는 방법입니다
return BinarySearch<uint32, CSimpleKey<T> >(key);
.
이 다음과 같은 오류 발생 :
이csimplekeytable.h:131: error: no matching function for call to 'BinarySearch(NEngine::uint32&)'
비주얼 스튜디오 컴파일러는 템플릿 계층의 벌금을 걸어 보이지만 GCC는 함수가 어디에서 오는지 완전히 자격을 날 필요는 (I 같은 고정하여이 문제를 확인했습니다 그런 식으로 템플릿 멤버 변수 문제. 이제 다음과 같은 오류 발생
return CSimpleTable<CSimpleKey<T> >::BinarySearch<uint32, CSimpleKey<T> >(key);
:
그래서 내가 지금 이것을 변경해야 할 몇 가지 머리를 긁적 후
csimplekeytable.h:132: error: expected primary-expression before ',' token
csimplekeytable.h:132: error: expected primary-expression before '>' token
을, 나는 여기에서 일어나고 것은 그것이하려고한다는 것입니다 생각 어떤 이유로 BinarySearch를 'Less Than'연산자로 사용하기 전에 '<'을 해결하십시오.
두 가지 질문 : - 오류에 대한 나의 해석과 함께 올바른 길을 가고 있습니까? - 어떻게 수정합니까?
-D
예! "this->"는 작동하며 설명하는 이유 때문에 더 확실한 선택입니다. doh! 감사합니다. –