GCC 4.4 supports std::array, so there is not much point in keeping compatibility with ancient compilers...
std::tr1 might not be supported by all compilers and will eventually be dropped by others. Using boost instead makes this more portable.