While it generates some ugly code I found it easier to simply use the canonical names for all types. I spent tens of hours fighting this and never found a good way.
On Tuesday, September 27, 2016, Michael via cfe-users < cfe-users@lists.llvm.org> wrote: > Nobody? Wrong list? Any insight in this would be greatly appreciated. > > Thanks > > Michael > > On 08/30/2016 07:00 PM, Michael via cfe-users wrote: > >> Hi >> >> Hope I picked the right place for this kind of problem, if not please let >> me know. >> >> I'm using libclang to parse header files and generate code from them. I >> found that clang_getTypeSpelling() usually includes the namespace(s) a type >> was declared in. However with the exception being typedefs (and same for >> "using A = B"). Not sure if this is a bug or intended behavior, but it >> seems at least inconsistent. I also couldn't really find a good workaround >> for this. I'd have to manually figure out all typedefs (not just pure >> typedefs, they could also be template parameters or whatever) and then >> their originating namespaces. This sounds a bit cumbersome and not really >> straight forward. >> >> Minimal example: >> >> namespace foo { >> class Bar { >> }; >> typedef Bar BarDef; >> } >> >> clang_getTypeSpelling on "Bar" (kind "Record") gives: "foo::Bar" >> clang_getTypeSpelling on "BarDef" (kind "Typedef") gives: "BarDef" (<== >> missing "foo::") >> >> Any idea how to solve this problem? Am I missing something? >> >> Thanks >> >> Michael >> _______________________________________________ >> cfe-users mailing list >> cfe-users@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users >> > > _______________________________________________ > cfe-users mailing list > cfe-users@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users >
_______________________________________________ cfe-users mailing list cfe-users@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users