From the blitz++ webpages at http://www.oonumerics.org/blitz/:
Is there a way to soup up C++ so that we can keep the advanced language features but ditch the poor performance? This is the goal of the Blitz++ project: to develop techniques which will enable C++ to rival -- and in some cases even exceed -- the speed of Fortran for numerical computing, while preserving an object-oriented interface. The Blitz++ Numerical Library is being constructed as a testbed for these techniques.
blitz++ is a numerical library for C++ which uses sophisticated compilation techniques (somewhat parodied in C++: computing Fibonacci numbers at compile time, but having the same flavour) to produce highly efficient code. Class templates are used to produce efficient code with significant inlining and loop unrolling, all performed at compile time. The primary author of blitz++ is Todd Veldhuizen, but currently the library is developed by a larger team. Licensing is your choice of GPL or Artistic License.
Compilation time of programs using the library is a dog, even if very high (run-time) performance is achieved: Contemporary compilers tend to compile templates in a very inefficient manner, even if they do end up producing good code.