Semantics Consulting, Inc.


About Steve Contact Code About Semantics Publications Courses Phrenology of Semantics


C++ Common Knowledge C++ Gotchas Programming in C++


Dewhurst, S., Dougherty, C., Ito, Y., Keaton, D., Saks, D., Seacord, R. C., Svoboda, D., Taschner, C., & Togashi, K. Evaluation of CERT Secure Coding Rules through Integration with  Source Analysis Tools (CMU/SEI-2008-TR-014, ADA482285).  Carnegie Mellon University, Software Engineering Institute, 2008.

Dewhurst, S.C. Unfinished Business. C/C++ Users Journal Experts Forum, 21, 11 (November 2003).

______.  A Matter of Judgment. C/C++ Users Journal Experts Forum, 21, 10 (October 2003).

______. What Are You, Anyway? C/C++ Users Journal Experts Forum, 21, 8 (August 2003).

______. N-Ary Nibbling. C/C++ Users Journal Experts Forum, 21, 6 (June 2003).

______. C++ Gotchas #1 and #17. C/C++ Users Journal Online Exclusives, 21, 5 (May 2003).

______. Scouting Out Optimizations. C/C++ Users Journal Experts Forum, 21, 4 (April 2003).

______. Typeints. C/C++ Users Journal Experts Forum, 21, 2 (February 2003).

______. Two C++ Gotchas. C/C++ Users Journal, 21, 2 (February 2003).

______. A Bit-Wise Typeof Operator, Part 3. C/C++ Users Journal 20, 12 (December 2002).

______. A Bit-Wise Typeof Operator, Part 2. C/C++ Users Journal 20, 10 (October 2002).

______. A Bit-Wise Typeof Operator, Part 1. C/C++ Users Journal 20, 8 (August 2002).

______. Running Circles Round You, Logically. C/C++ Users Journal 20, 6 (June 2002).

______. Metaprogrammed Adapters. C/C++ Users Journal 20, 4 (April 2002).

______. Output Iterator Adapters. C/C++ Users Journal 20, 2 (February 2002).

______. Conventional Generic Algorithms. C/C++ Users Journal 19,12 (December 2001).

______. Stepping Back. C/C++ Users Journal 19,10 (October 2001).

______. One at a Time, Please. C/C++ Users Journal 19,8 (August 2001).

______. Split Idioms. C/C++ Users Journal 19, 6 (June 2001).

______. A Question of Respect. C/C++ Users Journal 19, 4 (April 2001).

______. Polymorphic Function Objects. C/C++ Users Journal 19,2 (February 2001).

______. Fungible Control Structures. C/C++ Users Journal 18,12 (December 2000).

______. Elemental Base Idioms. C++ Report 12, 7 (July/August 2000).

______. Don't Ask, Don't Tell. C++ Report 12, 5 (May 2000).

Dewhurst, S.C. Subobject members. C++ Report 5, 3 (March/April 1993).

______. Program philosophy checkers, active libraries, and devolution of the compiler. Paper accepted for workshop on Development Processes for Use of the Object Paradigm, OOPSLA, Vancouver, B.C., October 23, 1992.

______. Distributed abstract interfaces. C++ Report 4, 3 (March/April 1992) and in C++ Gems (ed. S.B. Lippman) SIGS Books, 1996.

______. Abstracting data abstraction. Invited paper, In Proceedings of the Borland Languages Conference, April 28-May 1, 1991.

______. Control abstraction. The C++ Journal 1, 2 (Fall 1990).

______. Little generics. The C++ Journal 1, 1 (Summer 1990).

Coplien, J., Dewhurst, S.C., and Koenig, A. C++: evolving toward a more powerful language. The AT&T Technical Journal 67, 4 (July/August 1989).

Dewhurst, S.C. The architecture of a C++ compiler. Invited paper, In Proceedings of the USENIX C++ Workshop, Santa Fe, New Mexico, November 9-10, 1987.

______. Flexible symbol table structures for compiling C++. Software - Practice and Experience 17, 8 (August 1987).

______. Object representation of scope during translation. In Proceedings of the 1st European Conference on Object-Oriented Programming, Paris, France, June 15-17, 1987 and in Lecture Notes in Computer Science #276, Springer-Verlag, 1987.

Dewhurst, S.C. and Stark, K.T. Out of the C world comes C++. Computer Language 4, 5 (February 1987).

Dewhurst, S.C. Automatic generation of syntax-directed editors: a grammar-independent implementation combining tree-structured and screen editing capabilities. Master of Science in Engineering thesis, Princeton University (January 1982).

______. An equivalence result for temporal logic. ACM SIGPLAN Notices 16, 2 (February 1981).


Steve has given hundreds of talks, seminars, and webinars at industry conferences and and other venues. Some recent presentations include:

Modern C++ Interfaces: Complexity, Emergent Simplicity, SFINAE, and Second Order Properties of Types.
Triangle C++ Developers Goup (users group presentation, 1/2017).

Tough Stuff in Modern C++.
ACCU 2016 Conference (full-day tutorial, 4/2016).

SFINAE Sono Buoni, Reloaded: Resurgent use of SFINAE in modern C++.
Bloomberg LLP Distinguished Speaker Series (invited talk, 11/2015).

Flavors of Memory-Mapped Objects in C++.
Embedded Systems Conference (conference presentation, 5/2015).

Temporal Partitioning of Semantics in C++ Design.
Bloomberg LLP Distinguished Speaker Series (invited talk, 10/2014).

Protopatterns that Fizzled: Three interesting design patterns that got left in the bit bucket.
Bloomberg LLP Distinguished Speaker Series (invited talk, 3/2013).

Undercover C++: What's efficient and what isn't.
Design East (conference presentation, 10/2012).

Welcome Visitors.
Citadel LLP, Citadel Tech Talks Program (webinar, 9/2012)

Writing Efficient, Self-Maintaining Code With C++ Templates.
Design West (conference presentation, 3/2012).

C++ and Sociology.
Bloomberg LLP (new hire motivational talk, 12/2009).