I'm examining the code.
In the parsethread.cpp line 1570, I enable the output to report a typedef token information.
Manager::Get()->GetLogManager()->DebugLog(F(_("Adding typedef: name '%s', ancestor: '%s'"), components.front().c_str(), ancestor.c_str()));
It seems that when I parse the code like this:
typedef class Ancestor{
    public:
    int m_aaaa;
    int m_bbbb;
} Parent;
Then the output is like this:
Adding typedef: name 'Parent', ancestor: ''
Note that the ancestor is an 
empty string. This is the reason that code completion can't give the correct tooltips.
If the ancestor is string named "Ancestor", I think the code completion will work ok!
Edit: This has been confirmed, I just tested by assigning the ancestor = _T("Ancestor") , in the line 1564 of parsethread.cpp.
    ancestor << typ;
    ancestor = _T("Ancestor");
then, the tips can show correctly.
I'm trying to solve it, but all the codes are hard to understand(currently no document were supplied), so, it will take times, also, I will enrich  the wiki page if I find the solution.
There is another issue: If I try to parse this code
class Ancestor{
    public:
    int m_aaaa;
    int m_bbbb;
};
typedef class Ancestor Parent;
Then 
no typedef token was recognized. 
