I have a potential patch for the boost::array tests that will pass under Borland 0x561 and probably under MSVC as well [I think it is the same issue]
I am leary of resolving an issue by patching a test, but I think the issue is comparatively minor, especially in regard to most library use, and currently failing 40% of tests does not accurately reflect the case either. The problem is that borland (and likely MS) cannot use initialiser syntax for aggregates that are in turn made up of non-aggregate types. The failing tests (3 & 4) uses arrays of std::strings. Switching to const char * on the broken compiler 'resolves' the issue. Hence the proposed patch: [from CVS diff logs] cvs diff array3.cpp (in directory C:\Projects\3rdParty\boost\libs\array\) Index: array3.cpp =================================================================== RCS file: /cvsroot/boost/boost/libs/array/array3.cpp,v retrieving revision 1.5 diff -r1.5 array3.cpp 12a13,20 > #if defined( BOOST_AGGREGATES_INITIALISE_ONLY_PODS ) > typedef const char * season_type; > #else > typedef std::string season_type; > #endif > > typedef boost::array<season_type,4> seasons_array; > 19c27 < boost::array<std::string,4> seasons = { --- > seasons_array seasons = { 24c32 < boost::array<std::string,4> seasons_orig = seasons; --- > seasons_array seasons_orig = seasons; 39c47 < for (boost::array<std::string,4>::reverse_iterator pos --- > for (seasons_array::reverse_iterator pos 56d63 < =================================================================== and =================================================================== RCS file: /cvsroot/boost/boost/libs/array/array4.cpp,v retrieving revision 1.4 diff -r1.4 array4.cpp 14a15,23 > #if defined( BOOST_AGGREGATES_INITIALISE_ONLY_PODS ) > typedef const char * season_type; > #else > typedef std::string season_type; > #endif > > typedef boost::array<season_type,4> seasons_array; > > 18c27 < boost::array<boost::array<std::string,4>,2> seasons_i18n = { --- > boost::array<seasons_array,2> seasons_i18n = { 26c35 < boost::array<std::string,4> seasons = seasons_i18n[i]; --- > seasons_array seasons = seasons_i18n[i]; BOOST_AGGREGATES_INITIALISE_ONLY_PODS would (obviously!) be defined in config for each affected compiler, known to be Borland up to 0x0561, MSVC6 and MSVC7. -- AlisdairM _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost