cppreference.com is a great site that is a reference of the all variants of standard C/C++ and their respective standard libraries, in particular C++98, C++03, C++11, C89, C99, and C11.
Scott Myers has a good article on rvalue references and how they can be something else in certain cases where the type gets deduced, as is the case in templates or when using the auto keyword. He proposes the term universal references for these cases. Read his interesting article in Overload 111.
He gave a presentation on the same topic and a video of it is available here.
There has been some interesting discussion on various C++ blogs lately on how to best pass parameters to functions in C++11 that is worth following. Here are the relevant links in order:
- Boris Kolpackov - Efficient argument passing in C++11
- Sumant Tambe - C++11 Idioms
- Scott Meyers - Parameter Types in Constructors
While I appreciate these discussions as a programming language nerd, it definitely shows that C++11 makes C++ a much more complicated language in many regards, especially if you want to use all of its features to maximum effect. Even in these early days of C++11 usage, we already notice some loopholes or missing pieces with the latest language features, such as rvalue references and perfect forwarding. I'm glad I don't have to teach C++11. That sounds like a nightmare.
Christian Plesner Hansen posted an excellent article explaining in-depth how the inverse square root hack works. That hack was made famous by its use in the Quake C code base. He not only shows how and why the hack works but also demonstrates how it can be modified to work for 64-bit floating point types (or really any arbitrary number of bits) and how it can be extended to not just work for the inverse square root (i.e. a power of -0.5) but for any power between -1 and 1.
The Journal of Computer Graphics Techniques posted a new article on compressing the frame buffer called The Compact YCoCg Frame Buffer. The idea is to basically reduce the frame buffer storage requirements by converting fragments into the YCoCg color space (which is a luminance/chrominance color space) and then store the chrominance channels at a lower resolution since the human eye isn't as sensitive to chrominance variations as it is to luminance variations. There is also a WebGL demo and a video on the paper's web site.
Simon Yeung posted a nice article on his implementation of angle-based SSAO over at #AltDevBlogADay. You can find the same article on his personal blog.
Ben Weston posted a nice blog article dealing with optimizing Perlin noise evaluation by using 3D texture hardware. As opposed to doing multiple texture lookups that get lerped, this technique uses a single 3D texture lookup and uses hardware trilinear filtering to effectively get the same result as if multiple lookups had been done.
John Chapman posted a great tutorial on pseudo lens flares last month that I missed.
I was looking for some more info on Poisson disk sampling recently and I stumbled upon an old article from 2008 on the topic that is really good.
Tim Cooper posted a must-read article on serialization in Unity. I really wish this was part of the docs because I had to find out all of this the hard way, and some of it is not immediately obvious.