mirror of
https://github.com/boostorg/circular_buffer.git
synced 2026-01-30 19:52:14 +00:00
223 lines
7.0 KiB
Plaintext
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
|