I tried to find out what was wrong with the former parsing error i encountered several days before and I'm sure now it's related to macro parsing of semantic. This is an example:

#ifndef _BREAD_H_
#define _BREAD_H_

#include <iostream>
using namespace std;

namespace bread_name{
    class bread
        int geta();
        int getb();
        void dump(const char *info1, const char *info2)
            cout << info1 << endl;
            cout << info2 << endl;
        int m_a;
        int m_b;
#define dump(a,b) dump(#a, #b)

#endif /* _BREAD_H_ */                        

I wrote a macro in order to use bread::dump(hello, world) instead of bread::dump("hello", "world");

But because it has exactly the same name with member function of class bread. Semantic can not well handle this. In the function list generated by semantic, there's only macro dump. all members of class bread are ignored.

Zhiqiu Kong (孔直秋)