Software Development West (http://www.sdexpo.com) will be held in Santa
Clara, March 15-19. I'll be giving seven talks, three of which are
completely new, three of which are completely updated versions of talks
I've given previously, and one of which is back by popular demand.
I hope to see you there!
Best regards,
Steve
====== ABSTRACTS ======
Practical Design Patterns in C++, Parts 1 and 2 <=== NEW MATERIAL!
----
These talks provide an introduction to the concept and use of design
patterns in the C++ context. While we do introduce the student to some
of the concepts that underlie design patterns, most of our time is spent
in highly practical examination of specific design patterns as
implemented in the C++ language. The classes include sections that show
how to employ patterns in combination to solve sophisticated design
problems, and advice as to how to select among available patterns in a
specific context. The course also covers many of the lesser known
features of the C++ language and C++ programming techniques and idioms
that are of practical importance when applying the patterns.
Typelist Meta-Algorithms <=== NEW TALK!
----
We give a brief introduction to typelists, a common mechanism for
creating and manipulating lists of types for compile time manipulation.
We then show how a typelist may be used to generate type-based
conditional code in a maintainable way. This in turn motivates
development of a suite of STL-like typelist meta-algorithms,
meta-function objects, and meta-function adapters. We'll finish up by
looking at sample applications of typelist meta-algorithms.
Clueing in the Compiler <=== NEW TALK!
----
Ever wonder exactly what the standards committee was thinking when they
added the typename keyword to the C++ language? This talk discusses
just how ignorant the compiler can be when translating template code,
and why and when seemingly unnecessary uses of typename and template are
required. Along the way we'll examine a version of the Monostate
pattern that allows the seamless addition and removal of Monostate
members (at compile time) simply by referencing them, and elucidate the
syntactically challenging "rebind" mechanism of the standard STL
container allocators. As a parting shot, we'll show how to use template
un-instantiation to avoid the rebind mechanism entirely.
C++ Gotchas <=== NEW MATERIAL!
----
What will it be this time? Low-level coding errors? Mis-use of idiom?
Failure to defend one's code against summer interns? All of the
above? This talk will expose a collection of new and old C++ gotchas
and discuss how they can be avoided or corrected.
Welcome Visitors <=== NEW TALK!
----
Does the Visitor pattern have you stumped or just annoyed? This talk
will take you through the standard GOF Visitor, Robert Martin's Acyclic
Visitor, and Andrei Alexandrescu's ad hoc Visitor. By the end of the
talk, you and Visitor will come to understand and respect each other.
C++ Hierarchy Design Idioms <=== OLD STANDARD...
----
While C++ itself has relatively few rules on how the language may be
employed, the community of competent C++ programmers employs a large set
of implicit design and coding idioms. This class examines a number of
generally accepted low and mid level design idioms for class
hierarchies. We'll cover base and derived classes, coding for
polymorphism and safety, and the interplay of various design forces on
the eventual shape of the hierarchy.