id summary reporter owner description type status milestone component version severity resolution keywords cc 2290 Patch for GCC-4.0.1 compatibility (and better compile time). Dave Abrahams Matthias Troyer "This patch makes the tests build on GCC-4.0.1 and leaves out what I believe to be the unnecessary step of checking whether a metafunction class is actually a placeholder expression. If I'm understanding correcetly, it will always be a metafunction class, and not just in the tested examples. Note that this patch is against 1.35.x; I know things have been shuffled for 1.36 but I assume the same transformation can be applied elsewhere. {{{ #!diff Index: boost/archive/array/iarchive.hpp =================================================================== --- boost/archive/array/iarchive.hpp (revision 3118) +++ boost/archive/array/iarchive.hpp (working copy) @@ -108,7 +108,7 @@ template void load_override(serialization::array const& x, unsigned int version) { - typedef typename mpl::apply1< + typedef typename mpl::apply_wrap1< BOOST_DEDUCED_TYPENAME Archive::use_array_optimization , ValueType >::type use_optimized; Index: boost/archive/array/oarchive.hpp =================================================================== --- boost/archive/array/oarchive.hpp (revision 3118) +++ boost/archive/array/oarchive.hpp (working copy) @@ -107,7 +107,7 @@ template void save_override(serialization::array const& x, unsigned int version) { - typedef typename mpl::apply1< + typedef typename mpl::apply_wrap1< BOOST_DEDUCED_TYPENAME Archive::use_array_optimization , BOOST_DEDUCED_TYPENAME remove_const::type >::type use_optimized; }}} " Patches closed Boost 1.37.0 serialization Boost 1.35.0 Problem invalid workaround Matthias Troyer