There is an interesting but rarely mentioned technique in a C++ context: signature-based polymorphism, a more permissive variation of subtype polymorphism, usually called duck typing. Two objects having nothing in common can share an implicit interface and be commonly manipulated by such an interface with no inheritance involved. Part I and Part II. Also, making use of SIMD units such as MMX, SSE, or AltiVec is usually a tradeoff of portability for speed. Recent versions of GCC include an extension that allows you to write vector code without sacrificing portability. Take a look at how to use it.