On 6 September 2013 14:28, Petr Prikryl <prik...@skil.cz> wrote:
> Yongwei Wu wrote:
>> >> I really like to be able to show all data members in the diagram
>> >> without documenting them....
>> >
>> > Then you should set EXTRACT_PRIVATE to YES.
>>
>> You missed the "without documenting them" part :-).
>>
>> It is arguable that the original behaviour might be better. People
>> normally want to hide the private data members from documentation, but
>> the purpose of the collaboration diagram is to show the relationship
>> between this class and other objects. To put it to the extreme: In a
>> well-designed class, all data members are normally private; does it
>> mean that the collaboration diagram will NOT show anything then?
>
> Well, but does it make sense to generate a documentation without
> documenting anything?

My intention is just show how the class relates to (collaborates with)
other classes. Showing that class A associates with class B is one
thing, but showing that I have a data member called blah of type B in
class A (and requiring people to document it) is another.

> It may be difficult to judge without the real example, but...
>
> If you want to show the implementation internals (like the private
> members), you probably want to tell the programmer
> also what are they good for. If you want to hide the implementation
> (i.e. document only the API), then you also want to hide the internal
> collaboration. (Say, you want to hide it because it is subject
> to changes.)

It makes some sense to me, but, again, there is a subtle difference
between telling people that class A collaborates with class B and
telling people that class A has a data member named blah is of type B.

To give a fake example which is somewhat real, how do you want to document this:

template <class T>
class shared_ptr {
    ...
}

Does it make sense to show that shared_ptr collaborates with T without
documenting all the implementation details about shared_ptr's private
members?

> To summarize, it is natural--in my opinion--not to show the collaboration
> diagram for hidden functionality; or, it is natural to show also
> the documentation for the revealed parts of the collaboration
> graph.
>
> You may consider to generate several versions of the documentation:
> one of the end user, one for third party programmers (API), and
> one for you with the smallest details.

I can see it is not an easy call. Does it make sense to add a new
option for the collaboration diagram, something like
UNDOC_MEMBERS_IN_COLLAB_DIAGRAM or PRIVATE_MEMBERS_IN_COLLAB_DIAGRAM?

Best regards,

Yongwei

-- 
Wu Yongwei
URL: http://wyw.dcweb.cn/

------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
_______________________________________________
Doxygen-users mailing list
Doxygen-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/doxygen-users

Reply via email to