Re: [CEDET-devel] Namespace completion problem with C++
Brought to you by:
zappo
From: Eric M. L. <er...@si...> - 2008-03-24 23:03:19
|
My mistake on previous email. Here the first A is in scope, because bar::xx is in the second A namespace. I've updated the scope calculator to find and use the merged A namespace instead of only the namespace block that bar::xx shows up in. If bar had been outside of A, like this: void A::bar::xx() ... then it would have worked since A::bar would have used the merged version of A in the internal searches. Eric >>> Ravikiran Rajagopal <rav...@am...> seems to think that: >Hello, > The C++ parser does not seem to use namespaces when resolving names for >auto-completion. Here is a simple example: > >-------------------- >namespace A { class foo { public: void aa(); void bb(); };} >namespace A { >class bar { public: void xx(); public: foo myFoo; }; >void bar::xx() >{ > myFoo. // <--- cursor is here after the dot >} >} >-------------------- > >Using the CVS version of CEDET on Emacs CVS (23.0.60), the analysis finds that >the variable "myFoo" is of type "foo", but it cannot find a definition of >type "foo" since it does not match "A::foo" as the same "foo" in the >declaration of class "bar". Without the "namespace" declarations, the type is >parsed correctly and the possible completions are presented. Could someone >kindly point me in the right direction to fix this problem? I am an elisp >novice (know just enough to muck with my .emacs) but very comfortable with >C++; please point me in the direction of documentation if this is known. > >Regards, >Ravi > -- Eric Ludlam: er...@si... Siege: www.siege-engine.com Emacs: http://cedet.sourceforge.net |