![]()
May 2001
Volume 19 Number 5MULTITHREADING
Elegant Function Call Wrappers
Andreas Huber
Scheduling functions for later execution is an obvious requirement in multithreaded programs. How to do that and preserve both type safety and modularity is not so obvious. The author combines an old pattern and some new template techniques to pull it off rather nicely.FEATURES
wxWindows, an Intuitive Cross-Platform GUI Framework
Carlos Moreno
If it absolutely has to have a GUI, and it has to run on different platforms, you have to have a look at this freely available framework.Two Classes for Simple Socket Programming
Richard Smereka
Using these classes, getting your program hooked to the Net really can be as simple as plugging in a socket.Building a Professional Software Toolkit
John Hubbard
Professionals have a right to be picky about the tools they use. The author suggests a few criteria for what makes a good tool and contributes a couple of his own tools designed to fit the bill.C/C++ TIPS
Tip #6: Making Classes Non-Derivable
Shanker Chandrabose
Some classes just have no business being parents.C/C++ CONTRIBUTING EDITORS
The New C: X Macros
Randy Meyers
Assembly language programmers of the 60s had to develop some great tools just to preserve their sanity. Some of those tools, such as X macros, are still potentially useful today.The Standard Librarian: Bitsets and Bit Vectors
Matt Austern
In C++ you can twiddle bits to your hearts content, and not even go near a macro.Sutters Mill: To New, Perchance To Throw (Part 2 of 2)
Herb Sutter
Conventional wisdom says always check for and respond to allocation failure but oftentimes you just cant do either.Uncaught Exceptions: The Great Panjandrum
Bobby Schmidt
Templates are hard enough to understand without all the inconsistent terminology being used in C++ literature. Bobby clears up an especially troublesome case.DEPARTMENTS
Editors Forum
New Products
We Have Mail
C++ EXPERTS ON THE WEB
In this new, web-only component of CUJ, we continue publication of the columns that were popular in the former C++ Report magazine. The following articles are featured on the CUJ website this month:
"From Mechanism to Method: Distinctly Qualified"
by Kevlin Henney
Why nobody really loves std::string, and an interesting idea for a pair of classes to replace it."Conversations: Roots"
by Jim Hyslop and Herb Sutter
It pays to understand your ancestors in the object world as well as the real world."Engineering Notebook: Visitor"
by Robert Martin
Robert Martin revisits the famed Visitor pattern and shows a number of compelling uses, including the generation of reports from fixed data structures."The (B)Leading Edge: Using IOStreams Locales and Facets"
by Jack Reeves
Locales and facets arent just for internationalization. They come in handy in I/O formatting applications as well."Object Interconnections: CORBA and XML Part 1: Versioning"
by Douglas C. Schmidt and Steve Vinoski
XML does not threaten to replace CORBA; in fact the two nicely complement each other. The authors show how XML can ease versioning problems in CORBA.Visit the "C++ Experts Forum" at www.cuj.com/experts/.