Category Archives: C++

Code Coverage with the ARM C/C++ Compiler

Introduction Developing for an embedded environment can often leave you juggling for space. Squish Coco is designed with such constraints in mind, making instrumentation and code coverage possible even on embedded environments. Squish Coco separates the coverage data creation from the analysis, enabling users performing cross-compilation to host the compiler on a separate platform. The […]

Yes. We are hiring, too, but…

… not just testers. While our products Squish and Squish Coco are about testing we also need developers! Good ones. Those that are good with C++ mainly. But in the end we can also throw Java, ObjectiveC, C#, Python, JavaScript, Perl, PHP and Tcl in the mix if you want to work on one of […]

Help with cherry-picking

A question to those out there who are interested in the use of revision control software and release management. We are using git but I’ll try to formulate the challenge independant of the concrete system. For quite some time now we are using a dedicated release branch in order to decouple work on a software […]

ccache for MSVC

I’ve been a happy ccache user for years. It’s a great tool for avoiding unneeded recompilation by reusing previously cached results – thus speeding up builds quite substantially. Unfortunately, it only works for gcc; there is a ccache patch for MSVC around but it never quite worked for me. Hence, I decided to write a […]

The One True Iterator Declaration

Continueing my rich history of bikeshed-quality blog posts, I proudly present: Three common ways to declare the iterators for iterating over a map: for ( map<string, string>::const_iterator it = map.begin(); it != map.end(); ++it ); Not bad. Unfortunately the line is kinda long, and the .end() function is queried over and over again. On the […]

Recursion Depth Counting

I’ve been touching this function which happens to call itself recursively and found that in order to add some feature, I needed to know how deeply I recursed into the function already. Null problemo, I thought: void f() { static int recursionDepth = 0; ++recursionDepth; printf( “Recursion depth is: %d\n”, recursionDepth ); // Lots of […]

C++ Prototype Wrapper

Imagine this: You have an existing class hierarchy, for instance a ‘Node’ class from which ‘StringNode’, ‘NumberNode’ and ‘BooleanNode’ classes derive. Now, you want to implement a nicely generic and easily extensible way to create an object of one of the three concrete classes depending on a value (for instance, a string) you get. How […]