Previous section   Next section

Imperfect C++ Practical Solutions for Real-Life Programming
By Matthew Wilson
Table of Contents
Preface


What You Will Learn

I wrote this book to empower fellow developers. It takes a critical, but constructive, look at C++ and its imperfections, and presents practical measures for avoiding or ameliorating them. When you've read it, I hope you'll have a better grasp of:

  • How to overcome several of the deficiencies in C++'s type system

  • The usefulness of template programming in increasing code flexibility and robustness

  • How to survive in the realm of undefined behavior—that which is not addressed by the standard—including dynamic libraries, static objects, and threading

  • The costs of implicit conversions, the troubles they bring, and the alternative of effective and manageable generalized programming via explicit conversions

  • How to write software that is, or may more easily be made, compatible with other compilers, libraries, threading models, and the like

  • What compilers do "behind the scenes" and how they may be influenced

  • The tricky interoperability of arrays and pointers, and techniques by which they may be dissuaded from behaving like each other

  • The power of C++ to support the Resource Acquisition Is Initialization mechanism and the variety of problem domains in which it can be applied

  • How to minimize your effort by maximizing your compiler's ability to detect errors

You will certainly be equipped to write code that is more efficient, more maintainable, more robust, and more flexible.

It's my intention that even very experienced C++ practitioners will find new ideas and some new techniques with which to stimulate the mind and enhance their existing practice. Programmers with less experience will be able to appreciate the principles involved and to use the techniques within their own work, moving to fill any gaps in their understanding of the details of the techniques as their knowledge grows.

I don't expect any of you to agree with everything that I have to say, but I do expect even the most contentious material to stimulate your understanding of your use of this formidable language.


      Previous section   Next section