Я портирую какой-то шаблонный код из Windows, и я сталкиваюсь с некоторыми различиями в компиляторах на iPhone 3.2 SDK.Ошибка составления шаблона на iPhone SDK 3.2
Оригинальный код внутри функции-члена шаблона класса заключается в следующем:
return BinarySearch<uint32, CSimpleKey<T> >(key);
где BinarySearch является метод наследуется от другого шаблона.
Это производит следующее сообщение об ошибке:
csimplekeytable.h:131: error: no matching function for call to 'BinarySearch(NEngine::uint32&)'
Визуальная студия компилятор, кажется, идти вверх штраф шаблона иерархии, но НКЕ нужна мне, чтобы полностью определить, где функция исходит из (я проверил это, фиксируя то же проблемы с переменными-членами шаблона таким образом).
Так что теперь нужно изменить в:
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 как оператор «Меньше» по какой-либо причине.
Итак, два вопроса: - Я нахожусь на правильном пути с моей интерпретацией ошибки? - Как это исправить?
-D
Да! «this->» работает и по той причине, которую вы объясняете, является более очевидным выбором. DOH! Спасибо! –