Friday, December 9, 2005

Upcoming Talks Posted

I've just updated the list of public and open-enrollment talks I'll be giving in
January, February, and March of next year. All are near Portland, Oregon, or
Santa Clara, California. There's quite a mix of topics, including a couple of
new talks I've never given before. Details are available at the usual location:

I hope to see you at one or more talks next year.


Thursday, October 6, 2005

Do you have a 5th printing of Effective STL?

Each time a new printing of one of my books comes out, I'm supposed to get
a copy. Normally I do, but there are occasional snafus, and I recently
realized that I lack a copy of the 5th printing of Effective STL. Worse
yet, my publisher is unable to find one. I'd really like to have a copy of
the 5th printing, so if you have one, I have a deal for you.

I spent the last two days updating ESTL for the upcoming 7th printing (you
can check out the panoply of changes at, and I'm
willing to trade an autographed copy of the new printing (when it comes out
in a few weeks) for a copy of the 5th printing, ideally a 5th printing in
pristine condition -- no writing in or on it, no folded pages, etc. If you
have such a printing and are interested in a trade, please let me know.



PS - The printing number is at the bottom of the copyright page.

Wednesday, September 14, 2005

New Pseudo-Publication: An Annotated Draft Article

A lot of my job is thinking about C++ programming and writing up my
thoughts. Sometimes I get midway into a writing project, but, for one
reason or another, I abandon it before it's ready for publication. In the
past, such not-ready-for-prime-time documents simply sat on my hard drive,
swirling round and round in the purgatory of perpetual unfinishedness.
Now, thanks to the wonder of web publishing, even stuff not worthy of
publication can be published! (In my more cynical moods, I call such
publications "blogs.")

Today I made available on the web an annotated draft of an article I
started but now plan to never finish. Here's an overview, taken from the
document I've made available:

In the late summer of 2004, I became interested in identifying the best
return type for factory functions. I ultimately drafted an article on the
topic, which I intended to submit for publication in some magazine. I sent
the draft to a number of people for comments, but then I got caught up in
finishing Effective C++, Third Edition, and by the time I got back to the
article, it was many months later.

As I reviewed the article and the comments I'd received on it, I realized
that (1) a lot of the material had been incorporated into the new version
of Effective C++, where I'd done a better job writing it up, and (2)
revising the article for publication and bringing it up to date would
require more time and energy than I had available. Still, I didn't want to
abandon the article completely, because (1) I'd already put a lot of time
and energy into it, and (2) I felt that some of the material -- notably the
interactions of auto_ptr and tr1::shared_ptr -- continued to be worthwhile.
I thus decided to annotate my November 2004 draft with comments on things
I'd change if I were to revise the article for publication, then make the
annotated draft available on the web. The result is what you see below.


I hope that the technical information in the draft is interesting and
useful, but I also hope that this document sheds some light on the process
of producing something ready for publication.

If you're interested in reading an article that, um, isn't really worthy of
your time, check out

FWIW, I don't plan to make a habit of this. I finish most things I start.


Monday, September 12, 2005

C++ Connections in Las Vegas in November

This November, the "C++ Connections" conference will take place in Las
Vegas. The lineup for this show is very strong, and I'm not saying that
just because I'm both a speaker and a member of the Program Committee.
Microsoft is a major sponsor of the show, so there will be lots of C++/CLI
expertise there, but there will be lots of platform-independent material,
too. The two talks I'll be giving (using the STL efficiently and modeling
memory-mapped IO) are listed at my "Upcoming Talks" page
(, but I encourage you to take
a look at the full schedule at, because the variety and
quality of the talks and speakers is really quite remarkable.

There is no doubt that this event will be one of the strongest C++ events
in 2005 -- and probably 2004 and 2006, too. If there is a chance that you
can participate, I encourage you to give it strong consideration.


Friday, September 2, 2005

Upcoming Talk in Bellevue, Washington

On Wednesday, September 21, I'll be speaking at the Northwest C++ Users
Group in Bellevue, Washington. The topic is "Two View of C++," and you can
get all the details at

I hope to see you there.


Wednesday, August 24, 2005

Revised Book Errata Update Policy

In the past, I've collected bug reports for my books and then updated the
web pages two or three times each year, posting to this mailing list the
latest changes to the errata pages. This has been slightly less hassle for
me, but it's not been ideal for readers, who might go months without being
informed of errata that had been reported.

Since publication of EC++/3E, I've been trying to update the books' errata
pages on an ongoing basis, adding new issues as they come in. This
essentially eliminates the time lag between a bug being reported and it
appearing at my web site, but because I don't want to increase the
frequency of postings to this mailing list, it means that I no longer have
an easy way to identify the latest bug reports to come in.

At some point, I hope to have a more sophisticated errata system that would
allow, for example, filtering errata based on when they were reported. I'd
hoped that I could cajole Addison-Wesley into providing such a system for
use by all their authors, but it's become clear that that is unlikely to
happen. For the time being, then, there will be no easy way to identify
the most recent additions to my books' errata lists. On the plus side,
when you visit the errata lists, you should see a comprehensive listing of
all the issues that have been reported.

I hope you find the errata lists useful. They're my Hall of Shame, but I
am always interested in comments on how my publications can be improved.


Tuesday, July 26, 2005

Two Interviews; Updated EC++/3E Errata

Two more interviews with me are now available:
- Q&A with Bookpool customers:
- Q&A with LinuxPlanet:

Also, I've now updated the EC++/3E errata list with the latest bug reports
and "interesting comments." It's at the usual place:


Monday, June 13, 2005

Brief Interview; EC++/3E Errata

As part of the rollout of the new edition of Effective C++, I've done a few
interviews, and a short one is now available at

Also, I've posted the inevitable first set of errata for the book at
Nothing too serious so far, I'm pleased to report.


Tuesday, May 24, 2005

Two more EC++/3E Sample Items

Two more sample Items have now been made available. One of them is Item 9
("Never call virtual functions during construction or destruction"). You
can get that via the Bookpool page for 3E (,
where you can also read about how to win a chance to interview me. They
apparently think this is something you might want to do :-) I don't get any
kind of kickback on purchases through Bookpool, but I can tell you that the
people there seem very, very nice, so I encourage you to check out their

The other Item now available is at Addison-Wesley's page for 3E. The Item
is #47 ("Use Use traits classes for information about types"), and the URL



Friday, May 6, 2005

Two Book-Related Questions

Now that the third edition of Effective C++ is done, I have time to turn my
attention to two other book-related issues, and I'd like your feedback.

- ELECTRONIC PUBLICATION. We'd like to come out with a new electronic
version of all three of my books to replace the current CD (which has
only two books on it). Any comments you have on the proper format and
feature set for such a product would be most welcome. Should we again
use an HTML-based approach on CD? Should we go with PDF instead? Is
there some other format or delivery mechanism that would be most useful?
Please let me know your thoughts on how you'd like to electronic versions
of my books made available.

- ERRATA LISTS. Currently, my book errata lists are hand-coded HTML. It's
so primitive, it's not even retro. It's ugly, you can't do things like
search for all entries for a particular page or printing or made after a
certain date, etc. It is, quite honestly, an embarrassment, but it's
easy for me to maintain, there are only so many hours in a day, and one
has to prioritize, etc. Still, I'd like to do better. If you have a
suggested way to approach this problem, or if you know of errata sites
for other books/CDs/etc. that do this particularly well, please let me



Tuesday, May 3, 2005

EC++/3E Sample Item Now Available

Addison-Wesley has just made Item 27 from EC++/3E ("Minimize Casting")
available for download at
This means that in approximately 8 minutes, I should start getting bug


Friday, April 29, 2005

EC++/3E is Finished

Just a quick note to let you know that I sent final camera-ready copy of
the third edition of Effective C++ to my publisher last week. I expect
physical books to exist in bookstores around the end of May. Between now
and then, there will be sample Items posted at various locations, and it
looks like at least one will appear as an article in DDJ. I'll make
announcements here when those things happen.

Sample Items and magazine articles are part of a marketing campaign
designed to whip you into a buying frenzy, but if you're already gripped by
frenzy and like to order books from Amazon, I'd appreciate it if you'd do
it via the following link, because then I get a small kickback from Amazon.
(The cover image, ISBN, and ordering information for the book is correct,
but most of the textual information (e.g., reviews) at that site is for the
second edition, not the third, sigh.)\

I can't in good conscience fail to note that you can buy it for less at the
Addison-Wesley web site, where I don't get a kickback, but where the
supporting information corresponds to the new edition. The URL for that is

I hope you enjoy the third edition of Effective C++. It's a significant
update, as you'll be able to see from the information at the AW web site.


Wednesday, April 6, 2005

Partnership with DevelopMentor; September Talks in Germany

Two things:
- New training partnership with DevelopMentor.
- September talks in Ludwigsburg, Germany.


For some time now, demand for my training services has outstripped my
availability, and I've been looking for a way to address this mismatch
without compromising quality. I ultimately decided to enter into a
partnership with DevelopMentor, a training company I've known since
1995. I've worked with the DevelopMentor people as a class instructor, as
a class attendee, and as a provider of training materials, and I've always
been impressed with their way of treating people (well), the quality of the
training they provide (high), and their commitment to maintaining these
ideals (consistent). As a result of the partnership, DevelopMentor will
have exclusive access to my training materials and will be able to offer my
courses using instructors I've personally approved. Their web site is and their main page for my courses is


As I've done for the past several years, I'll be giving a week of talks in
Germany in the fall. The talks themselves will be in English, though, if
you are particularly unlucky, I may try to speak to you in German if you
are there. You'll find a list of the talks at the usual place:


Saturday, January 22, 2005

Updated Errata for MEC++ and ESTL

I just updated the errata pages for MEC++ and ESTL. You'll find them at
the usual places
( and, but the new
entries are as follows:

For MEC++:

-------- --- ----- ------------------------------------------------ --------
9/16/04 fb Many Many single-argument constructors in the book
would best be declared explicit. [This bug
report should be combined with sk's existing
3/5/96 Interesting Comment on the same topic.]

1/22/05 tk 54 As noted above by cc about page 50, fully
constructed objects will be automatically
destroyed if an exception is thrown, but this
guarantee applies to local (i.e., auto) objects
only if the exception is caught. Add a footnote
alluding to the footnote on pg. 50.

10/27/04 ms 67 In 1st para, should also mention that a catch
clause for runtime_error can also catch
underflow_error exceptions.

9/12/04 nd 70 In code at bottom of page, both "what" member
functions should be declared const.

9/12/04 nd 71-2 Once the decision to catch by reference has been
made, a decision must be made about whether to
catch by refernce-to-const. As always, const
should be used unless the handler needs to be
able to modify the exception object.

8/24/04 ms 155 HeapTracked::operator delete incorrectly throws
an exception if asked to delete the null pointer.
It should do nothing in that case.


-------- --- ----- ------------------------------------------------ --------
9/18/04 dxm 44 The comment next to the call to remove_copy_if
near the bottom of the page could suggest that
values are removed from c before copying them to
goodValues. In fact, c is not modified at all;
undesired values are simply skipped during the
copy. Reword.

12/21/04 nds 67 In the description for resize, it's not true that
if n is less than the current size, new
default-constructed elements will be added.
Rather copies of a single
default-constructed element will be added.


Sunday, January 9, 2005

New book in my Series; Updated "Upcoming Talks" List

The latest book in my Effective Software Development Series, Bill Wagner's
Effective C#, has recently been published, leading me to hope that people
will stop asking me when I'm going to write it :-) I learned a lot from
reading it, and I think you will, too. For details on the book, check it
out at AW ( or Amazon

You might also want to check out my updated "Upcoming Talks" page at, because there are five new
listings for March (four at the Software Development conference).

I wish you all a happy, healthy, and prosperous 2005,