Category: C++

UnitTest++ v1.0 Released - 18 March 2006
We grabbed the best features of each framework and created what we think it's the best C++ unit-testing framework out there (for our needs anyway). We took the results and put them up in Sourceforge under a veryunrestrictive license, and that's how UnitTest++ was born. [more]

CppUnitLite2 1.1 - 17 December 2005
At this point, we have been using CppUnitLite2 for a year at High Moon Studios doing test-driven development on Windows, Xbox 360, and some PS3. It has been used to unit test libraries of an engine, pipeline tools, GUI applications, and production game code. [more]

Jumbo shrimp. Instant classic. Military intelligence. C++ refactoring browser. Spot the pattern yet? Up until recently, there have been more sightings of Nessy and Bigfoot than of working C++ refactoring browsers. After months of using refactoring intensively in C++, my fingers are screaming for mercy and threatening me with repetitive stress syndrome. Fortunately, things seem to be changing a bit. [more]

Asserting Oneself - 2 October 2005
I've been following the discussion on the evils of assert started by Len Holgate. Poor old assert was getting beaten up from every side, so I'm going to have to step forward and defend it. [more]

A couple of months ago I looked at various build systems in the hopes of finding an ideal one for C++ development. Jam was the clear winner and things looked good. Fast-forward a few months and one aborted attempt at implementing that build system, and there are now more unanswered questions than answers. It turns out that Jam and its successors were far from the perfect solution I had envisioned, so I was back to square one. [more]

First there were punch cards, and people somehow managed to write software. Then came interactive computing with mainframes and personal computers, and people wrote even more software and become even more productive. There is no doubt that our development environments today are light-years ahead of what the computer pioneers had half a century ago. Yet I constantly see projects suffer with horrible environments that force slow iteration cycles on programmers. [more]

The great majority of the literature on warfare concentrates on topics such as formations, maneuvers, equipment, and training. What they often leave out is the importance of the supply lines. The most cunningly devised plan will be worthless in the long term if your supply lines fail. And the same can be said for large-scale C++ development. [more]

There is no doubt that Xoreax's Incredibuild will speed up most full builds of C++ projects using Microsoft Visual C++ to varying degrees. I'm not going to argue that. But is using Incredibuild in your project really a good idea? [more]

One aspect of the scientific process is publishing detailed experiment descriptions and results so that they can be independently verified by other scientists. That's exactly what I decided to do after reading Kyle Wilson's surprising results in his article "Experiments with Includes." [more]

One of the topics I've been meaning to get to for quite a while is the applicability of test-driven development in games. I will get to that soon. I promise! In the meanwhile I'm now in the situation that I need to choose a unit-testing framework to roll out for my team at work. So, before I get to talk about how to use test-driven development in games, or the value of unit testing, or anything like that, we dive deep into a detailed comparison of existing C++ unit-testing frameworks. Hang on tight. It's going to be a long and bumpy ride with a plot twist at the end. [more]

Book review: Effective STL - 12 November 2004
Effective STL is to STL what Effective C++ is to C++. It's equally great and it's written in the same light, conversational Scott Meyers style that makes reading it a pleasure. It assumes that you have basic knowledge of STL (and C++) and builds on that to show you how to use it effectively and avoid common pitfalls. [more]

Simple Is Beautiful - 17 June 2004
If you've read some of my other articles, you know that I believe that the best code is no code at all. But what if you actually have to write some code? What then? This article deals with that question and shows the importance of simplicity. [more]

For small projects, we can blissfully code away without paying any attention to physical structure and we won't be any worse off for it. However, as a project grows, it reaches a critical point where build times become unbearably slow. This article looks into the reasons for such slow build times and explores some techniques to speed things up. [more]

The physical structure of a C++ program is very important yet it is often overlooked. This two-part article will attempt to explain why the physical structure of a program is so important, present some useful guidelines, and show its effect on compile times. [more]