Runtime-Flexible Multi-dimensional Views and Arrays for C++98 and C++0x