Package: graphviz Version: 1.16-1 Severity: important
First of all - graphviz is really great package, together with kdevelop it makes all the developing work a lot easier. I rate this bug important, because purpose of graphviz is to display class diagrams. And not displaying some parts of whole class hierarchy is .. um - important bug ;) Ok, so a class that inherits from template class is quietly ignored, and not displayed on the diagram. At least I should expect some warning. Concrete example: // file Singleton.hpp template <class T> class Singleton { public: static T& instance() { static T obj; return obj; } protected: Singleton() {}; ~Singleton() {}; private: Singleton(const Singleton&); Singleton& operator=(const Singleton&); }; // file Factory.hpp class Factory : public Singleton< Factory > { /* ... */ } //// Singleton is a well known C++ design pattern, by the way ;) And really useful. So ignoring class derived from it can be sometimes really confusing, as I'm looking onto the diagram and can't find some of my classes. How to handle that? Each template instatination is a separate type. Three possible solutions I see. Suppose I have also another class Omega : public Singleton<Omega>; then: 1. Singleton<Omega> Singleton<Factory> | | Omega Factory The base class Singleton<Factory> is different than base class Singleton<Omega> 2. Singleton / \ --------- (*) / \ Singleton<Omega> Singleton<Factory> | | Omega Factory (*) those lines could be dotted to indicate relationship other than just inheritance. In fact this is a "template instatination" relationship 3. Singleton / \ / \ --- same here - dotted lines would be better | | Omega Factory Personally I'd prefer solutions 1. or 2. Maybe there are other solutions, I can't think of now :)) -- System Information: Debian Release: 3.1 APT prefers testing APT policy: (500, 'testing') Architecture: i386 (i686) Kernel: Linux 2.4.26 Locale: LANG=pl_PL, LC_CTYPE=pl_PL (charmap=ISO-8859-2) Versions of packages graphviz depends on: ii libc6 2.3.2.ds1-20 GNU C Library: Shared libraries an ii libexpat1 1.95.8-1 XML parsing C library - runtime li ii libfontconfig1 2.2.3-4 generic font configuration library ii libfreetype6 2.1.7-2.3 FreeType 2 font engine, shared lib ii libice6 4.3.0.dfsg.1-10 Inter-Client Exchange library ii libjpeg62 6b-9 The Independent JPEG Group's JPEG ii libpng12-0 1.2.8rel-1 PNG library - runtime ii libsm6 4.3.0.dfsg.1-10 X Window System Session Management ii libx11-6 4.3.0.dfsg.1-10 X Window System protocol client li ii libxaw7 4.3.0.dfsg.1-10 X Athena widget set library ii libxext6 4.3.0.dfsg.1-10 X Window System miscellaneous exte ii libxmu6 4.3.0.dfsg.1-10 X Window System miscellaneous util ii libxpm4 4.3.0.dfsg.1-10 X pixmap library ii libxt6 4.3.0.dfsg.1-10 X Toolkit Intrinsics ii tcl8.4 8.4.9-1 Tcl (the Tool Command Language) v8 ii tk8.4 8.4.9-1 Tk toolkit for Tcl and X11, v8.4 - ii xlibs 4.3.0.dfsg.1-10 X Keyboard Extension (XKB) configu ii zlib1g 1:1.2.2-3 compression library - runtime -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]