DATA-ORIENTED DESIGN The hardware will thank you.

If you wish to submit an article, please contact for details.

Lots of good resources linked from this site by Daniele Bartolini: Data Oriented Design Resources

Data-Oriented Design book - online version

Data-Oriented Design book (2013 beta version) - PDF download
This is a free resource. Feel free to read, copy, download, upload, print, burn to CD, hand to someone on a pen drive, but do not claim the work is your own, or charge anyone for the right to read the material.

Data-Oriented Design book - 2018 paperback version


One more reason why C++ classes can cause problems 12/11/2011:13:34:52

the static keyword has three different meanings based on how it's used.

Though this post
doesn't appear to be written by someone who knows why these things are true, the first item:

#1. Declare as static functions that are not used outside the file where they are defined
Declaring a function as static forces an internal linkage within that file, which can improve the performance of the code. Functions that are not declared as static default to external linkage, which may inhibit certain optimizations, such as aggressive inlining, with some C/C++ compilers.

This implies that because all class member functions are global scope, they potentially suffer the same optimisation limitation. Good old C++.

Also, ignore point 5, you should always be using bitwise operators for such trivial logic.