Code verbosity is one of those topics that everyone has an opinion on — and mine will probably differ from yours. One of my particular quirks is that I like my code to fit in 80 columns wherever possible (or 132 on some codebases). It’s just one of those things.

The C++11 enum class concept, as nice as it is, can increase the verbosity of your code. It’s a fine balance to get the right level, and in large switch statements for example, enum class values can get very annoying.

Enter the C++11 version of the using statement, and you can clean this up fairly easily…

The Z-Wave interface I’m working on is an inherently asynchronous beast. Callbacks abound, and the use of lambda functions makes that much easier to deal with. This fact led me to select C++11 as the language standard for the project.

And then I added automatic memory management with std::shared_ptr<>, and it all fell apart.

Why, you ask?