У меня проблема со следующим кодом:
template <typename U>
class lamePtr
{
public:
typedef U* ptr;
};
template <typename U>
class smarterPointer
{
public:
void funFun()
{
typedef lamePtr<U> someType;
someType::ptr query;
}
};
Как видите, внутри lamePtr у меня есть typedef. Внутри класса smarterPointer у меня есть функция funFun (). Что я пытаюсь сделать, это сделать еще один typedef someType. До этой строки все работает нормально, пока мы не доходим до строки с запросом someType :: ptr.
Здесь я хочу, чтобы «запрос» стал lamePtr :: ptr (простое значение, а не typedef;). Тем не менее, я получаю ошибки компиляции (с gcc 4.4.3):
temp.cpp: In member function ‘void smarterPointer<U>::funFun()’:
temp.cpp:15: error: expected ‘;’ before ‘query’
Что я здесь не так делаю?