tipo typedef'd não visível como tipo de retorno de uma função membro

Este programa falha ao compilar (usando o gcc-4.5). A mensagem de erro diz:

error: 'myType_t' não nomeia um tipo

  1 class abc{
  2 //typedef int myType_t;
  3 
  4   public:
  5 typedef int myType_t;
  6 
  7     abc();
  8     myType_t fun1();
  9 };
 10 
 11 myType_t abc::fun1()
 12 {
 13   return 0;
 14 }
 15 
 16 int main()
 17 {
 18   abc abc1;
 19   return 0;
 20 }

Agora declarandotypedef int myType_t; fora da classeabc faz isso compilar. Minha confusão é: qual é o problema se o tipo de retorno de uma função de membro for digitado dentro da class

questionAnswers(3)

yourAnswerToTheQuestion