Issues, errata and bug reports to C++ publications

Over the years, I contributed errata and bug reports to some excellent C++ publications:

Effective C++, Third Edition Errata for Effective C++, Third Edition by Scott Meyers
More Effective C++ Errata for More Effective C++ by Scott Meyers
Effective STL Errata for Effective STL by Scott Meyers
Modern C++ Design Errata for Modern C++ Design by Andrei Alexandrescu.
See also www.xs4all.nl/~nd/dekkerware/moderncppdesign
Writing Secure Code 2nd Ed Errata for Writing Secure Code 2nd Edition by Michael Howard and David LeBlanc.
MSDN Library SafeInt.hpp, the source file from Integer Handling with the C++ SafeInt Class, an MSDN article by David LeBlanc.
A new version of SafeInt.hpp is available at www.codeplex.com/SafeInt. See also David's web log, and my issues at the SafeInt Issue Tracker.
Visual C++ Microsoft Visual C++:
Visual C++ typeid should ignore top-level const of function arguments, with help from Alex Blekhman.
Using-declaration ("using std::swap") should not disable argument-dependent, with help from Jeroen Eggermont.
Compiler bug: error C2839 when operator-> returns pointer to built-in type, opened by David Lowndes.
Value-initialization in new-expression by Pavel Kuznetsov, MetaCommunications. (I added extra information to the report.)
Borland C++ Borland C++:
Report #51854 - Value-initialization: POD struct should be zero-initialized, with help from Nicola Musatti.
Report #69196 - Fatal F1004 on std::swap template specialization caused by rvalue reference bug, related to Boost ICE, reported by Christopher Greene.
ISO IEC C++ Standard Library Issues:
594. Disadvantages of defining Swappable in terms of CopyConstructible and Assignable
659. istreambuf_iterator should have an operator->()
690. abs(long long) should return long long
809. std::swap should be overloaded for array types
850. Should shrink_to_fit apply to std::deque?, together with Beman Dawes, Howard Hinnant, and Hervé Brönnimann
900. stream move-assignment, with help from Alberto Ganesh Barbati and Howard Hinnant (Sorry, still no proposed resolution!)
930. Access to std::array data as built-in array type, with help from Lawrence Crowl and Nicolai Josuttis
941. Ref-qualifiers for assignment operators, proposed resolution, N2819, co-witten with Daniel Krügler
972. The term "Assignable" undefined but still in use
1131. C++0x does not need alignment_of, raised by Scott Meyers
Concepts ConceptC++ and ConceptGCC:
Revisiting name lookup with the swap() example by Douglas Gregor.
...and I submitted a few tickets to the ConceptGCC Trac.
Boost Boost C++ Libraries:
Ticket #1019 - iterator_facade::pointer should be the return type of operator-> (DR 445), as suggested by David Abrahams.
Ticket #1217 - value_initialized leaves data uninitialized, when using MSVC, with help from Fernando Cacciola.
Ticket #1459 - value_initialized leaves data uninitialized, when using Borland
Ticket #1910 - function::swap should avoid doing memory allocations, triggered by Arvid Norberg.
Ticket #2056 - Please add support for built-in arrays to boost::swap, discussed at the Boost mailing list.
Ticket #2243 - value_initialized should have its own swap functions
See also the Boost development trunk: boost/utility/value_init.hpp and libs/utility/value_init_test.cpp
CppUnit CppUnit- C++ port of JUnit:
[ 2185407 ] TestDecorator does assume ownership! (Bug)
[ 2187743 ] Please add access to XmlElement attributes (Feature request)
TestReference class (Suggested solution to CppUnit's ownership problem)

Niels Dekker, Dekkerware
E-mail (no spam please): dekkerware at xs4all.nl
Page updated on 2008-12-08