Summary: | Representation for template classes is incorrect in class view browser | ||
---|---|---|---|
Product: | [Applications] kdevelop | Reporter: | Unknown <null> |
Component: | Language Support: CPP (old) | Assignee: | KDevelop-Devel List <kdevelop-devel> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | esigra |
Priority: | NOR | ||
Version: | 2.1-beta | ||
Target Milestone: | --- | ||
Platform: | Mandrake RPMs | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
S Shalnov
2002-04-30 08:28:07 UTC
Tested with following valid C++ code: template <class Key, class Value> class FooBase { public: FooBase() {} }; class Foo : public FooBase<long, int *> { public: Foo() {} }; Class parser successful in extracting declarations, however in the class view there is lacking information: there is not the slightest indication of these being template classes. Suggestion: Output parsed template parameters (it shouldn't be cut'n paste of text from the declaration). Roberto, we parse the template <....> as in the standard right? If it gets all typenames correctly, we can easily construct the correct template specification string. What I mean here is those template specs should be right ;) For such code as template < std::map < int, pair< QString, QString > >, Tree < double > > StrangeStructure; As seen this is not so easy as it seems. Which Tree that is it should know... It should also be possible navigate directly to say "Tree", or "std::map" templates..... Figure this :) I think a good code to test out whether the template stuff works is blitz++ library. It uses a lot of template expressions. The best acid test for template parsing would probably be a selection from the Boost libraries, for instance Boost.Python and Boost.MPL. Blitz++ is outdated (allthough some people are currently breathing new life into it), and certainly does not contain the latest and greates in horrorshow template syntax. Replaced s_shalnov@hotmail.com with null@kde.org due to bounces by reporter KDevelop3.4 shows the full class declaration as tooltip information, so this is available in the class view. Moving all the bugs from the CPP Parser. It was not well defined the difference between it and C++ Language Support and people kept reporting in both places indistinctively |