
I finally committed support for zero length arrays to the boost array library, and it is showing up what I believe are test case errors in the TR1 'tricky' tests. [tuple interface remains available only through John's TR1 implementation right now] The following tests from test_array_trick.cpp lines should be reconsidered: line 51: empty will return true if the array is length zero. verify_return_type(ca.empty(), false); lines 73-75: are all compile-time fails for array length zero BOOST_STATIC_ASSERT((::boost::is_same< typename std::tr1::tuple_element<0,T>::type, value_type>::value)); verify_return_type(&std::tr1::get<0>(a), static_cast<value_type*>(0)); verify_return_type(&std::tr1::get<0>(ca), static_cast<const value_type*>(0)); I thought about the tests for operator[]/at/front/back and figure these are OK, even the the results of calling those functions are unspecified (but not undefined) as: i/ you don't actually call the functions! ii/ they are required to be present, so this code MUST compile iii/ I believe even if the effects of calling the fns is unspecified, the actual return type is fixed. So those tests are good, indeed they must be kept! With the above mods, I believe we should now pass the TR1 tricky tests for array, and I will leave back-porting the tuple interface to namespace boost for 1.35. -- AlisdairM