Попробуйте это:
template <typename T>
class Base
{
public:
int someBaseMember;
};
template <typename T>
class Test: public Base<T>
{
public:
void testFunc()
{
someBaseMember = 0;
}
};
В vc ++ и компиляторе psp (и любом другом компиляторе, с которым я сталкивался) вышеописанное будет работать нормально, с компилятором iphone (для устройства, gcc 4.2, я думаю, с установленным флагом -fpermissive) я получаю сообщение об ошибке
'someBaseMember не определен'
на
'someBaseMember = 0;'
линия
Компилятор iphone, кажется, «разбирает» шаблонный код намного раньше, чем другие компиляторы (из того, что я могу сказать, большинство других даже не проверяет синтаксис, пока вы на самом деле не ВЫЗЫВАЕТЕ функцию или не создаете экземпляр. )
Из того, что я могу сказать, он разбирает его так быстро, что он еще даже не проанализировал базовый класс: S, как будто его не существует.
Есть идеи?