You want to improve your "old" C++ code base by allowing new features or bug fixes to be enhanced with C++11? The questions you will face on the way are manifold. First, what exactly allows me C++11 to do? Where is some documentation? What is the purpose of those features. Compared to languages like Ruby or Python the C++ standard library and language itself is not too well documented online. As a preparation for a lecture I'm holding in the next semester I was compiling a list of links to C++11 / C++0x documentation sites and as some kind of...
When you are working with main memory it is crucial to make sure that all the data structures are correctly sized and aligned. A typical approach is to create blocks of data that are processed independently. For the developer, the question is how large such blocks should be? The answer is that those blocks should always be either cache sized. Now, how large is the cache on the system you are using? Either you can go for experiments detecting the different cache levels and the cache line sizes, or if you are happy to have a Intel Linux system at...
Whenever you are building a system that has it's own type system you will come to a point where you perform type dependent operations. If your types seamlessly map to standard integral types most of the mapping code and extraction can be handled by simple template methods, but from time to time you will find the following code fragments: {% highlight c++ %} switch(type) { case IntegerType: /**/ do_something_important(value); break; case DoubleType: /**/ do_something_important(value); break; } {% endhighlight %} Interestingly the only difference in the above code line is only the requested type. A concrete example is e.g. hashing of...