xref: /openbsd-src/gnu/gcc/libstdc++-v3/docs/doxygen/TODO (revision 404b540a9034ac75a6199ad1a32d1bbc7a0d4210)
1*404b540aSrobert
2*404b540aSrobertThe approach I've been using for a given header is to recursively do each
3*404b540aSrobertof the "bits" headers which make up the standard header.  So, e.g., while
4*404b540aSrobertthere are four headers making up <algorithm>, three of them were already
5*404b540aSrobertdocumented in the course of doing other headers.
6*404b540aSrobert
7*404b540aSrobert"Untouched" means I've deliberately skipped it for various reasons, or
8*404b540aSroberthaven't gotten to it yet.  It /will/ be done (by somebody, eventually.)
9*404b540aSrobert
10*404b540aSrobertIf you document an area and need to skip (for whatever reason) a non-trivial
11*404b540aSrobertentity (i.e., one that should be documented), go ahead and add the comment
12*404b540aSrobertmarkup, and use the homegrown @doctodo tag.  See include/bits/stl_iterator.h
13*404b540aSrobertfor examples of this.  Doing so will at least cause doxygen to consider the
14*404b540aSrobertentitiy as documented and include it in the output.  It will also add the
15*404b540aSrobertentity to the generated TODO page.
16*404b540aSrobert
17*404b540aSrobert
18*404b540aSrobert Area           Still needs to be doxygen-documented
19*404b540aSrobert-----------------------------------------------------------
20*404b540aSrobert
21*404b540aSrobertc17             FINISHED (Nothing in Clause 17 "exists" in terms of code.)
22*404b540aSrobertc18             FINISHED, Note A
23*404b540aSrobertc19             Note A
24*404b540aSrobertc20             Note A
25*404b540aSrobertc21             Public functions basic_string done, Note B
26*404b540aSrobertc22             Most still to do; see docs/html/22_locale/*
27*404b540aSrobertc23             See doxygroups.cc and Note B.  Notes on what invalidates
28*404b540aSrobert                iterators need to be added.
29*404b540aSrobertc24             stl_iterator.h (__normal_iterator, other small TODO bits)
30*404b540aSrobert                stream iterators
31*404b540aSrobertc25             stl_algo.h (lots of stuff)
32*404b540aSrobertc26             <complex>, <valarray>, stl_numeric.h[26.4], Note A
33*404b540aSrobertc27             ios_base callbacks and local storage
34*404b540aSrobert                basic_ios::copyfmt()
35*404b540aSrobert                std_streambuf.h's __copy_streambufs()
36*404b540aSrobert                    " "           _M_* protected memfns (data has been done)
37*404b540aSrobert                fstream and sstream protected members
38*404b540aSrobert
39*404b540aSrobertbackward/*      Not scanned by doxygen.  Should it be?  Doubtful.
40*404b540aSrobert
41*404b540aSrobertext/*           Some of the SGI algorithm/functional extensions.
42*404b540aSrobert                All of rope/hashing/slist need docs.
43*404b540aSrobert
44*404b540aSrobert__gnu_cxx       Tricky.  Right now ext/* are in this namespace.
45*404b540aSrobert
46*404b540aSrobert-----------------------------------------------------------
47*404b540aSrobert
48*404b540aSrobertNOTES:
49*404b540aSrobert
50*404b540aSrobertA)  So far I have not tried to document any of the <c*> headers.  So entities
51*404b540aSrobertsuch as atexit() are undocumented throughout the library.  Since we usually
52*404b540aSrobertdo not have the C code (to which the doxygen comments would be attached),
53*404b540aSrobertthis would need to be done in entirely separate files, a la doxygroups.cc.
54*404b540aSrobert
55*404b540aSrobertB)  Huge chunks of containers and strings are described in common "Tables"
56*404b540aSrobertin the standard.  These are pseudo-duplicated in tables.html.  We can
57*404b540aSrobertuse doxygen hooks like @pre and @see to reference the tables.  Then the
58*404b540aSrobertindividual classes do like the standard does, and only document members for
59*404b540aSrobertwhich additional info is available.
60*404b540aSrobert
61*404b540aSrobert
62*404b540aSrobertSTYLE:
63*404b540aSrobertstl_deque.h, stl_pair.h, and stl_algobase.h have good examples of what I've
64*404b540aSrobertbeen using for class, namespace-scope, and function documentation, respectively.
65*404b540aSrobertThese should serve as starting points.  /Please/ maintain the inter-word and
66*404b540aSrobertinter-sentence spacing, as this might be generated and/or scanned in the
67*404b540aSrobertfuture.
68*404b540aSrobert
69*404b540aSrobert
70*404b540aSrobertvim:ts=4:et:
71