In when using VAssistX in c++ this is parsed badly:
class A
{
    class B
    {
    protected:
        A *m_data;
    public:
        virtual void Run() {}
    };
    class C: public class B
    {
    public:
        virtual void Run();
    };
    unsigned char *m_data;
public:
    void Test() {}
};
void A::C::Run()
{
    m_data->Test();
}
The last m_data is parsed as A::m_data which is an unsigned char instead of B::m_data which is a pointer to an object of type A. This causes Test() to be underlined with red and no intellisense on m_data. Strangely the tool tip for the item knows it is A::B::m_data and is of type A*