Files
circular_buffer/doc/TODO
Jan Gaspar 41375ad0b2 srcdoc update
[SVN r3169]
2006-08-30 21:50:42 +00:00

223 lines
7.0 KiB
Plaintext

Tasks based mainly on the formal review (see formal_review.txt for details):
t01 DONE
docs: change boost.org links to local
t02 DONE
docs: paragraph "Rationale": remove the "producer-consumer" usage (it is
confusing)
t03 DONE
docs: "Friend Functions" should be rather "Standalone Functions"
and should mention swap, <=, >= as well
t04 DONE - REMOVED
docs: paragraph "Model of": change (SGI) to (SGI specific)
t05 DONE
docs: "Type Requirements" will be part of "Template Parameters"
and will be taken from the source doc.
(was: change "Type Requirements" to "Element Type Requirements")
t06 docs: define the element type requirements (as a precondition) for every
method
t07 DONE - verify
adaptor.hpp: fix needed to compile the test with BCB 6.4
t08 DONE
base_test.cpp: fix needed to compile with VC 6.5
t09 DONE
fix needed to compile the tests with GCC 3.4
t10 docs: define exception safety for every method
"Guarantee of basic exception safety" as a design criteria for the whole
container should be removed or amended.
Plus add some 'generic_test's if the method does't guarantee only a basic
exception safety.
t11 DONE
docs: remove/amend "In fact the circular_buffer is defined in the file
boost/circular_buffer/base.hpp, but it is necessary to " (user should'n
be bothered with the implementation details)
t12 DONE
provide default arguments for push_back()/push_front() and
insert()/rinsert() methods and remove the non-argument versions
t13 docs: fix precondition "*(this).size() > index" to "(*this).size()"
or remove (*this) entirely (in the whole docs)
t14 docs: explicitly document methods which do not throw any exception,
e.g. "Exceptions: none"
t15 DONE
rename the data() method to something meaningful concerning its mutation
status (e.g to_array); mention its linear complexity in the docs
t16 docs: document that push_back() or other methods that they can choose NOT
to insert something -> in general document the boundary conditions
in greater details
t17 docs: delete the "Semantics" paragraph and move its content directly
into the documentation of the particular methods
t18 DONE
Perhaps in addition to a data() function, it would be useful if the
container provided constant-time access to the data as two arrays.
Perhaps something like std::pair<T *, T *> array_1() and
std::pair<T *, T *> array_2(). (Consider also returning of
std::pair<T *, size_t>.)
t19 DONE
docs: merge the source documentation with the main documentation
t20 DONE
docs: define requirements on the Alloc type parameter
t21 DONE
docs: consider better documentation for the "overwrite" term; add glossary
section
t22 REJECTED - postponed to later version
implement a "hook" for the overwrite operation (maybe as an adaptor)
t23 DONE - but the new iterator not applied (because of compilation problems
with VC6); only some improvements from the new iterator taken
amend the source code according to the formal review (line 1578); use
the new iterator if possible
t24 REJECTED
ammend the test in order to compile with the new iterator if really
needed (line 1857)
t25 DONE
add constructor taking just two iterators as a parameter
t26 DONE
change the current implementation of "overwrite" operation -> overwrite
will be equivalent to assign
t27 REJECTED
docs: apply the DefaultConstructible and Assignable type requirements
t28 docs: the difference between resize() and set_capacity() should be
mentioned more explicitly
t29 DONE
add rerase methods
t30 DONE
The insert() function has its rinsert() counterpart. The same issue
for resize and set_capacity is solved with the boolean parameter
remove_front, which is not consistent.
t31 DONE
docs: "... According to the semantics of rinsert, insertion overwrites
front-most items as necessary ..." should probably read "back-most items"
if this is a valid english word
t32 REJECTED - makes confusion; std::equal and lexicografical_compare target
this issue
reimplementing the comparison functions (line 3801)
t33 DONE - verify
fix needed to compile the tests with Comeau 4.3.0 compiler
t34 REJECTED - postponed to later version
consider throwing exception when pop_back() an empty container
t35 DONE
docs: there should be warning for data() documentation that the returned
pointer gets very easily invalidated
t36 DONE
docs: Description in circular_buffer.html could be splitted by <p> into
two paragraphs - it would look less "heavy"
t37 DONE
the macros as BOOST_CB_TRY should be at some time replaced by common
Boost macros (BOOST_TRY/BOOST_CATCH/BOOST_RETHROW)
t38 DONE
circular_buffer.hpp: #include <boost/type_traits.hpp> should be replaced
by finer granularity includes - this line big huge impact on compilation
time
t39 DONE
#include <cstring> instedad of <string.h>
t40 DONE - verify
base.hpp: remove warning Intel C++ 7.0 on line: void replace(...)
(line 4438)
t41 REJECTED - not important; causing problems with generated documentation
typedef for circular_buffer<T, Alloc> (line 4450)
t42 DONE
docs: documentation may add some rationale on its internal data structures
and their advantage over std::deque
t43 REJECTED - fixed another way
adaptor.hpp: apply workaround for borland (line 5764)
t44 DONE
add some "post tests" after testing non-const methods (such as inserting
an element into container which is tested for erase)
t45 DONE - no action needed
check the iterator's operator []; add assertion if needed
t46 DONE
rename files e.g. from adaptor to space_optimized
t47 DONE
constructor and insert methods taking input iterator does not work with
istream_iterator - std::distance() function does't work as expected - fix
needed
t48 DONE
verify the correctness of the SGIAssignableConcept
t49 DONE
test non-invalidation of the iterators after call to methods such as insert
or rinsert
t50 DONE
add assign methods with capacity parameter
t51 REJECTED - fixed
docs: add troubleshooting section for VC6: amend #define _VIRTUAL
in xlocnum header
t52 DONE
rename BOOST_DISABLE_CB_DEBUG to BOOST_CB_DISABLE_DEBUG
t53 DONE
check for multiple parameters passed into function for exception safety
t54 DONE
document scripts generating documentation
t55 DONE
Add copy-constructor of cb_space_optimized into synopsis.
t56 DONE
Synopsis - do not sort methods.
-------------------------------------------------------------------------------
Some routine tasks:
r01 check for memory leaks
r02 check for test coverage (doesn't have to be 100% but it would be good
if every line is hit at least once)
r03 update version number/date
r04 format source files
r05 spellcheck