Monday, December 4, 2000

Updated Errata Lists, etc.

Three Topics this time:
- I've updated my publications' errata lists
- Template Workshop Status Report
- Reminder about my January STL Seminar

I just added the most recent batch of bug reports for EC++, MEC++, and the
EC++CD to their respective errata pages:

By all reports, the C++ template programming workshop in Erfurt, Germany in
October was a great success. All the papers that were presented there are
now available at, and I encourage you to
look them over. It looks like there will be a follow-up workshop next year
(possibly in conjunction with OOPSLA, but that's not yet decided), so start
thinking about whether you'd like to make submission for next year's
workshop. When details on next year's workshop are available, I'll include
them in a mailing to this list.

My next STL seminar will take place January 22-25 near Portland, Oregon.
Based on my experience with the last public seminar as well as with some
on-site presentations, I've expanded the length of the course from three to
four days. You'll find all the details at I hope to see
you there!


Wednesday, September 20, 2000

Upcoming Seminars; Template Workshop; Revamped Web Site

Three topics:
- Upcoming public seminars in November and January
- Template programming workshop in Germany in October
- My new "improved" web site


My revamped web site (see below) now features a page dedicated to my
upcoming public seminars, including the ones I'll be giving in Switzerland
and Germany in November and the one I'll be giving in Portland in January.
For details, visit, then mark off some
time on your calendar to come listen to me prattle on about C++ :-)


The workshop on template programming I've mentioned in previous mailings
now has a final program, and you can find it at Having read all the submissions (we
could accept only 10 of 21), I can assure you that the presentations will
be very strong, and I just wish I could go myself. (I can't, sigh.) The
workshop will take place on Tuesday, October 10. (This is a day later than
originally scheduled, by the way). To register, visit and sign up for
the conference; there is no special registration for the workshop alone.

If you can't attend, I encourage you to read the papers that will be
presented there. You'll be able to get to them via that same URL,, but the links may not be present until
after the workshop.

One member of the Program Committe, reflecting on the submissions we
reviewed, shared this with the other members of the PC. He didn't expect
me to share it with others, but I think it accurately reflects the
workshop, and I thought you might find it interesting:

I was very pleasantly surprised by the quality of many of the papers
submitted to the workshop. Considering that this is a newly-born workshop
and it is held in Germany, the result is impressive. There are many
workshops held every year, some in conjunction with top quality
conferences. Most of them will just accept any paper that happens to be
submitted, expecting no novelty but instead repeating well-known
"positions" of the authors. Instead, the C++ template workshop has a
program that indeed allows it to claim that it is the premier outlet for
top-quality work in C++.

If you can make it to Erfurt next month, I think you'll find the workshop
well worth attending.


My web site has been revamped to include more information and to be easier
to navigate. If you find something wrong with the "new",
please let me know. Please also let me know if you find my ISP flaky (they
host the site). I've received a report that the site is *very* slow and
that 10061 errors ("connection refused") are common. It works fine for me,
but then again, there are zero hops between me and my ISP. On the other
hand, I've heard this complaint from only one person, so I'm kind of hoping
it's just him...

BTW, please don't give me grief about my use of frames at the site. It was
the least unpleasant of the options I had at my disposal, and besides, I'm
still not using cookies. Nor do I plan to.

I want to plug the person who did the work on the web site, because I found
him to be extremely professional in every way. He was determined to
produce a site that I was happy with, even if that meant rewriting things
several times to get the effect I wanted (across multiple browsers), and he
was willing to do research to find out how my latest impossible demands
could be met. He was amazingly responsive, and I do mean that I was
amazed. I also found his fees to be quite reasonable. If you are looking
for somebody to help you with web site work, I encourage you to contact:

Mogenns Gilmour
WebCoach Internet Services Corp.
Providing Quality Internet Services Since 1995
Info@... |
Toll Free: 877-WebCoach (932-2622)
503-655-6813 (Voice) | 503-655-6907 (Fax)

Tell him I sent ya.


Tuesday, August 8, 2000

November Seminars

For a variety of reasons, the next time I offer a public seminar on my
introductory STL materials has been pushed back from this coming November
to the second half of January, 2001. (When firm dates are available, I'll
let you know.) If you were hoping to attend the November STL seminar, I
apologize for the delay, but there are a few things we need to take care of
before we offer the seminar again. When we do it, I want to make sure we
do it correctly.

If you're in Europe, however, you may want to note the following seminar

Basel, Switzerland: November 13-14
Munich, Germany: November 16-17

For both seminars, the first day will cover "Designing and Implementing
Effective C++ Classes" (, and the
second day will cover "High-Performance C++ Programming
( I'm overhauling the
material in the high-performance course to include information on the use
of the STL portion of the standard C++ library. That material appears in
neither "Effective C++" nor "More Effective C++", though it will appear in
"Effective STL," which I'm working on now and which I hope to have out by
the end of the year.

The seminars in Europe are being organized by Altmann & Partner AG and by
QA Systems GmbH. At some point they will have official publicity
materials, and when those material become available, I'll let you know.


Monday, July 24, 2000

Reminder: Submissions Deadline is August 11

This is just a quick reminder that the deadline for submissions for the
October Workshop on C++ Template Programming is August 11. If you're doing
interesting things with templates and you'd like to share your insights and
experiences with others, I encourage you to prepare a submission.

For details, please visit and
scroll to the bottom half of the page.



PS - In theory, this mailing will be free of ads. If not, I'll see that
heads roll at egroups...

Saturday, June 17, 2000

MEC++ Updates; Next STL Seminar; etc.

There are several topics this time:
- The MEC++ Errata Page has been updated.
- The M29 Source Code has been updated.
- My next STL seminar will likely be October 31 through November 3.
- I'm looking for a web site design/maintenance firm near Portland, OR.
- I'm still working on getting rid of the ads on these postings.


Having just tinkered with the More Effective C++ source for the next
printing (its tenth), I've updated its errata page. As usual, you can find
the errata at

One of the bug reports involved Item 29, so I updated the on-line version
of the code for that Item. To get the updated code, go to The older source code
is available via a link at the AW MEC++ web site, but I'll ask AW to
replace that link with one to the URL I just gave you. This will prevent
me from having to ask AW to update their web site when I change the code
for M29 in the future. (This is also why I keep my books' errata pages at
my own site: it allows me to change them without bugging AW.)

BTW, the above link to the M29 source code is a Mailing List *exclusive*.
Aren't you excited?


Here's another exclusive:

My "Effective STL" seminar June 7-9 was a big success, so we'll be doing
another one, almost certainly October 31-November 3 at the same place (the
Crowne Plaza in Lake Oswego, a suburb of Portland, Oregon). The next one
will probably be four days instead of three, because nearly everybody who
attended the first one said they wished we'd had more time.

The seminar will probably be called "Essential STL" to reflect the
introductory nature of the material. That will allow me to use the name
"Effective STL" for a future non-introductory course that's based on
guidelines, just like "Effective C++" is.

When all the details have been worked out, we'll put up a web page for the
new seminar, and I'll post here to let you know it's up. For now, if
you're interested in attending a hands-on STL programming seminar led by
moi, reserve October 31 through November 3 and start bugging your boss for
time off and funding to attend :-)


Speaking of web sites, I'm looking for a reliable, professional web site
design and maintenance company located in or near Portland, Oregon. I'm
looking for somebody to design and maintain my own site ( as
well as to set up a site for my STL seminar, ideally including the ability
to accept registrations (including payment) automatically. I don't need
anything terribly fancy, but I do require somebody who is reliable, gets
work done in a timely fashion, and who is as picky about things as I am.
If you perform this kind of service or you know somebody who does, please
let me know (smeyers@...).

(To get some idea of how I feel about web site design, you might take a
look at the Introduction to my "Effective C++ CD", which you can read at I'm not
looking for a site offering all the features of my CD, but I am looking for
somebody whose thoughts about web site design are similar to my own.)


I ran into a snafu in getting rid of the ads that accompany my mailing list
postings, and I apologize for that. I'm working on it, and I hope to have
it all taken care of by the end of the month. (Executive summary: I sent
egroups a check, but they never got it.)


IMPORTANT: I've been having trouble with my email recently, so if you
reply to this, PLEASE check to make sure you're sending to
"smeyers@...". If the reply address comes up as
"root@...", PLEASE let me know so I can try to debug the problem!

Monday, June 12, 2000

Workshop on Template Programming

Somehow I ended up as the Program Chair for a workshop on template
programming in C++ in Germany this coming October. The Call for Extended
Abstracts is below. If you've been doing interesting work with templates,
I encourage you to consider submitting a paper.




October 9, 2000
Erfurt, Germany

in Conjunction with the
Second International Symposium on
Generative and Component-Based Software Engineering (GCSE 2000)

One of the most exciting research areas in C++ focuses on the use of
templates, especially as a means to support generic and generative
programming. A number of powerful, flexible, and useful techniques have
been developed, but to date there has been no forum where workers in the
field of C++ template programming could gather to hear about one another's
work. The purpose of this workshop is to provide an opportunity for people
interested in C++ template programming to gather and exchange ideas.

We encourage submission of extended abstracts of up to 10 pages on any
aspect of C++ template programming, including (but not limited to) the

Generic and generative programming in C++
Uses or extensions of the STL or other templates in the standard libray
Traits and traits-based programming
Iterators for multidimensional data structures
Template metaprogramming, including the representation of
metainformation in C++
Combining static configuration with dynamic techniques
Expression templates
Experience reports on template programming
Debugging template code
Compiler support for templates, including compilation times and diagnostics
Implementing C++'s template features
Portability issues
Template design and programming techniques

We are as interested in the application of templates as in their design and
implementation. Papers describing novel and interesting uses of the STL or
other existing template libraries are as welcome as papers describing the
design and implementation of new templates.

Our primary interest is in abstracts describing new work, but we will
consider abstracts based on prior publications. (Work that has already
been published should be identified as such.) One of our goals is to
increase the visibility of information likely to be helpful to other
workers in the field of C++ template programming.

A workshop proceedings will be produced in electronic form, to be made
available via the Internet or on CD by the time of the workshop.


Extended abstracts of no more than 10 pages should be sent to
workshop@.... Electronic submission in HTML or PDF is strongly
preferred. Questions about the submission process should be sent to

11 August Extended Abstract Submissions Due
4 September Notification of Accepted Submissions
29 September Final Extended Abstracts Due

Andrei Alexandrescu, RealNetworks, Inc., USA
Matt Austern, AT&T Research, USA
Thomas Becker, Zephyr Associates, Inc., USA
Ulrich Breymann, Hochschule Bremen, Neustadtswall, Germany
Krzysztof Czarnecki, DaimlerChrysler AG, Germany
Ulrich Eisenecker, University of Applied Sciences, Kaiserslautern, Germany
Nicolai Josuttis, Author and Consultant, Germany
Scott Meyers (Chair), Author and Consultant, USA
Mark Rodgers, Cadenza New Zealand Ltd, New Zealand
Yannis Smaragdakis, Georgia Institute of Technology, USA
Erwin Unruh, Fujitsu Siemens Computers, Germany

Wednesday, May 10, 2000

Migration to egroups should now be complete

In theory, everybody on my mailing list has now been transferred from the
soon-to-be-defunct list at my ISP to my list at egroups. I'm sending this
message to both lists, so if you get two copies of this message, it means
you were on the ISP-hosted list and you have been successfully moved to the
egroups-hosted list. If you get only one copy of this message and if that
one copy did NOT come from egroups, it means you somehow failed to get
moved from my ISP to egroups. In that case only, please go to and sign up for my
mailing list at egroups.

This is the last message I will send to my ISP-hosted list. I apologize
for bogging everybody down in what should ideally be a completely
transparent migration of list-hosting sites.


PS - I apologize if this or other egroups-based messages come through with
ads attached. I've sent egroups a check and have told them to
eliminate the ads, but it may take a little while for them to tend to
it. Please be patient.

Tuesday, May 9, 2000

Effective STL Seminar SOLD OUT

I just received word that my June "Effective STL" seminar has reached its
enrollment limit of 35. If you'd like to be placed on the wait list (in
case somebody cancels), let Nancy Pastrano know at nancy_pastrano@....

If you'd been thinking of attending but didn't sign up, take heart: we'll
probably do the seminar again in early November. As always, when more
information is available, this mailing list will be the first to know.


Friday, April 28, 2000

Errata Update; Seminar Update; Mailing List Update

Three things:
- EC++ errata updated.
- Enrollment limit placed on June STL Seminar.
- Mailing list migration in the offing.


I just uploaded an updated version of the Effective C++ errata list. This
is because I modified the source in preparation for the ninth printing. Of
all the changes, this is the most significant:
  ! 1/21/99 sdm 225-6 Contrary to the second bullet on this page,         4/28/00
                      names introduced via standard C headers *are* in
                      namespace std. Matt Austern explained the
                      reason for this in a posting to
                      comp.lang.c++.moderated on 1/18/00:

                        <cfoo> headers define symbols in namespace std
                        only, while the <foo.h> headers define them in
                        namespace std and then import them into the
                        global namespace as if by using-declarations.
                        This is described in section D.5, paragraph 2,
                        of the C++ standard.

                        It clearly wouldn't work for the <cfoo>
                        headers to define names in namespace std only
                        and for the <foo.h> headers to define names in
                        the global namespace only. If we did it that
                        way then (for example) we'd get two different
                        ldiv_t types, one from <stdlib.h> and one from
                        <cstdlib>. As is we've instead got a single
                        ldiv_t that can be referred to from two
                        different namespaces. Because of Koenig
                        lookup, it makes a difference which one it was
                        originally defined in.

                      I reworded the bullets to state for each one
                      what's in the global namespace, what's in std,
                      and what's in both.

* * *

For a variety of reasons, we just placed an enrollment limit of 35 on the
STL seminar I'll be presenting in June (
Because the class won't be too big, I'm hoping to have a lot of interaction
with everybody who attends. Last I heard, there were about 30 people
signed up, so if you're interested in attending the seminar, now would be a
good time to grab one of the remaining slots. It also looks like I'm
managing to convince several people with lots of STL experience to drop in
and offer help during exercises, so this should be a good opportunity to
have people look over your shoulder and explain that the error message that
never uses the word "iterator" is complaining about your iterators :-)

* * *

Because my ISP is discontinuing support for mailing lists, I've set up a
new mailing list at eGroups, I'm not yet done
setting things up, but when I'm finished with that, I'll do my best to
transfer everybody over from the current mailing list to the new one. In
theory, nothing can possibly go wrong (ahem), but don't be surprised if you
get a few pieces of mail in the next couple of weeks that serve only to
tell you about mailing list administrivia. With any luck, this will be a
painless transition for all of us.


Tuesday, March 21, 2000

Updated CD Errata, More STL Seminar Info, Pending Mailing List Change

In preparation for the next printing of the Effective C++ CD, I've updated
the CD's Errata Page (
to include my latest changes.

Also, I'm increasingly excited about the Effective STL Seminar I'll be
hosting June 7-9, because last week I got a chance to teach the
brand-spanking-new material for the first time. The course was
enthusiastically received, but of course I'll be tinkering with things here
and there so that future presentations are even better. For example, I'm
working on a special handout on card stock that will summarize all 70+ STL
algorithms. I'll be teaching the course again at a corporate site at least
one more time before June, so by the time the "real" seminar rolls around,
I expect to have things pretty well refined. For details on the June
seminar, please visit

Also on the topic of the June seminar, some people have requested a fourth
day of STLification, to take place Saturday, June 10. I'm willing to work
on a Saturday if you are, so if you're interested in an additional day (at
an additional cost -- we're still working on the details), be sure to let
Nancy Pastrano know when you register.

Finally, my ISP has decided to discontinue its support for mailing lists,
so sometime in the next few weeks, I'll be moving my mailing list to
someplace else. Already, I see, my archive of old messages seems to be
gone. Sigh. When I know more, I'll let you know, and I apologize for the


Saturday, February 5, 2000

Effective STL Seminar

It took a little longer than expected, but we have finally worked out the
details for the Effective STL seminar I'll be offering in Portland, Oregon,
on June 7-9. Here's the executive summary:

Effective STL: A Hands-On Programming Seminar with Scott Meyers
Lake Oswego, Oregon (a suburb of Portland)
June 7-9 (Wednesday-Friday)

A lot more information is available at the seminar's web site:

To register for the seminar or to ask questions about it, please contact
Nancy Pastrano of Trek Services: She's
handling all the administrative and logistical work. You can also contact
her with questions about the technical aspects of the seminar. If she
can't answer them, she'll forward them to me.

I hope to see you at the seminar in June!


Saturday, January 15, 2000

October DDJ Article Now On-Line

DDJ has now put my October article on operator->* on the web. The URL is

I'd hoped they'd put a version of the article up that doesn't separate the
code examples into listings following the article proper, but they chose
not to do that. Fortunately, there are links between the article text and
the listings, so it's pretty easy to switch back and forth.

The contract I signed with DDJ did not oblige them to make the article
freely accessible, so I hope you'll send the editor, Jon Erickson, mail
thanking him for his willingness to do it. His address is


Wednesday, January 12, 2000

CUJ Article is now out; June Seminar Reminder

My artice, "How Non-Member Functions Imrove Encapsulation", is now
available in the current issue of the C/C++ Users Journal. I think this is
some of the best work I've done in a while, and I hope you find it
interesting. Here is the opening paragraph:

I'll start with the punchline: If you're writing a function that can be
implemented as either a member or as a non-friend non-member, you should
prefer to implement it as a non-member function. That decision
*increases* class encapsulation. When you think encapsulation, you
should think non-member functions.

To my great delight, the entire article is also available on-line at CUJ and I had agreed in advance
that the article would eventually be made available via the web, but I
didn't expect them to make it available electronically at the same time as
the print version. I encourage you to send the editor, Marc Briand, mail
thanking him for making the article so easily accessible. His address is

We're still working on the details, but my hands-on "Effective STL" seminar
is planned for June 7-9 near Portland, Oregon. Within the next couple of
weeks, I'll send out a mailing with all the information you'll need, but
for the time being, I hope you'll plan to join me June 7-9 to get down and
dirty with the STL -- the most revolutionary library design I've ever seen,
and one we're darned lucky to have as part of standard C++.


PS - In an earlier mailing, I told you that my DDJ article on operator->*
would soon be available on-line. I'm still waiting to hear from DDJ about
when "soon" will be. When I know, I'll let you know.