|
SD is excited to present this cutting edge 2-day tutorial from C++ experts
Bjarne Stroustrup and Herb Sutter. A special pass is required for attendance.
MONDAY, MARCH 15, 2004
On Monday, we begin in the morning with a focus on practical, day- to-day use of C++, then quickly delve into design and coding tips, techniques, idioms, and style.
Welcome & Overview
8:15am-8:30am
Speaking C++ as a Native: Multi-paradigm Programming in Standard C++
Bjarne Stroustrup
8:30am-10:00am
Multi-paradigm programming is programming applying different styles of programming,
such as object-oriented programming and generic programming, where they are
most appropriate. This session presents simple examples of individual styles
in ISO Standard C++ and examples where these styles are used in combination
to produce cleaner, more maintainable code than could have been done using a
single style only.
Optimizing (and Pessimizing) C++
Herb Sutter
10:30am-12:00pm
This session is a tour of optimization issues in C++, how to handle them, and
how to avoid the pitfalls: Constructive laziness, examining one (possible) optimization
in depth, and multithreading issues in standard library implementations.
Lunch - 12:00pm-1:30pm
Panel—Teaching and Learning C++: Elevating Our Thinking
Bjarne Stroustrup & Herb Sutter
1:30pm-2:15pm
Many of our problems as C++ programmers come from misleading or misguided teaching.
This panel discussion elevates our correct thinking about design and programming
in C++ by correcting commonly taught misconceptions, and presenting superior
ways of thinking about the code we write. Topics include abstraction levels
and libraries; data structures, ints, and bytes; and generic programming and
OOP.
C++ Design: Style, Principles and Techniques
Herb Sutter (45 min) & Bjarne Stroustrup (45 min)
2:45pm-4:15pm
Class hierarchies, coding standards, and specialized domains all in one session—oh my!
Grill the Experts: Ask Us Anything!
Bjarne Stroustrup & Herb Sutter
4:45pm-5:30pm
This is your opportunity to get "thought leader" answers to your C++
questions! We strongly encourage you to submit your questions in advance, preferably
by email or in writing, at the beginning of the tutorial. Questions will also
be taken from the floor.
TUESDAY, MARCH 16, 2004
On Tuesday, we focus on today's modern cutting-edge use of C++, including important features of the Boost libraries and the draft C++ Library Extensions Technical Report now being finalized in the C++ standards committee. This day also contains important forward-looking information about what's coming soon in the next version of the C++ Standard, C++0x, where the instructors are the lead designers of several of the new core features.
Garbage Collection in C++ Herb Sutter
8:30am-10:00am
This talk begins with a summary overview of modern garbage collection, and then dives right
in to GC’s relevance to, and impact on, C++. Why should C++ programmers even care about GC?
What are the popular GC models, and why can’t C++ handle all of them well without some language changes?
What commercial garbage collectors are often used with C++ today, how do they work, and what do you have
to do to use them effectively? Why would you use, say, the Boehm collector, or the GC built into ISO
standard CLI (.NET)? Finally, what standards are in place, or in progress, to unify modern C++ and
modern GC environments? This and more, as we consider both CLI and non-CLI approaches in this talk
by the lead architect of the C++/CLI extensions for virtual machine and garbage-collected environments.
C++ Futures
Bjarne Stroustrup
10:30am-12:00pm
Version 2.0 of the C++ standard is now under construction. In this session,
the creator of C++ and chair of the Evolution Working Group talks about aims
and principles for future developments; improving support for generic programming;
making C++ easier to teach and use; specific proposals that are currently being
discussed; and likely future topics. The focus in this session is mostly on
language issues, there will also be mention of library additions. Examples areas
include initialization, concepts (a type system for template arguments), and
C compatibility.
Lunch - 12:00pm-1:30pm
A Look Into the New C++ Standard Library
Herb Sutter
Tuesday, March 16, 1:30pm-2:30pm
Version 2.0 of the C++ standard is now under construction, and it includes lots of useful stuff—from smart
pointers to generic programming tools, from math functions to new containers. In this talk, the convener of the ISO C++
committee delves into the history and current design of the draft standard hash-based containers, one of the shorter-term
additions to Standard C++ that is now being finalized. This talk also consider when and how to use these new containers for
best effectiveness, how they compare with existing implementations of hashed containers, and the important issues and pitfalls to be aware of.
Exceptional C++
Bjarne Stroustrup
3:00pm-4:15pm
This session covers exception usage and techniques, exception safety and invariants,
and generalized error handling. This will be demonstrated in particular using
the example designing containers and algorithms that are simultaneously efficient
and exception safe -- this is difficult, and the C++ standard library was designed
to meet this challenge. This session presents the guarantees offered by the
standard, the requirements on user code that these requirements depend on, and
explains the reasons behind the tradeoffs. Examples from a standard-library
vector implementation are used to illustrate general techniques. As ever, the
standard library provides examples of widely applicable techniques and principles.
Discussion on Questions Raised During the Tutorial
Bjarne Stroustrup & Herb Sutter
4:45pm-5:30pm
This session is set aside for follow-up comments and discussion on issues that
are raised during the tutorial.
|