------- Comment #2 from dave at boost-consulting dot com 2008-11-06 19:59 ------- This is really a serious problem! For example, consider this error message I got today. If you look carefully, you can see the fundamental problem is that two unsigned int lvalues are being passed to this function call operator. So naturally I'm wondering what types I'm allowed to pass there. However, the parameter types to the function are shown as const boost::property_traits::key_type &, and const boost ::property_traits< boost::vec_adj_list_vertex_property_map< boost::adjacency_list< boost::listS, boost::vecS, boost::directedS, boost ::property< boost::vertex_name_t, unsigned int, boost::property< boost::vertex_rank_t, int, boost::no_property> >, boost::property< boost::edge_locally_owned_t, bool, boost::property< boost::edge_target_processor_id_t, int, boost ::property< boost::edge_weight_t, double, boost ::no_property> > >, boost::no_property, boost ::listS>, boost::adjacency_list< boost::listS, boost::vecS, boost::directedS, boost ::property< boost::vertex_name_t, unsigned int, boost::property< boost::vertex_rank_t, int, boost::no_property> >, boost::property< boost::edge_locally_owned_t, bool, boost::property< boost::edge_target_processor_id_t, int, boost ::property< boost::edge_weight_t, double, boost ::no_property> > >, boost::no_property, boost ::listS> *, unsigned int, unsigned int &, boost ::vertex_name_t> >::value_type & !! Naturally, this message is useless for debugging my problem. I don't know when things changed; GCC never used to do this deep typedef substitution, which made it my favorite compiler for template programming. *** Please, Please, Please *** restore the old behavior. ../../../../boost/parallel/detail/ghost_store.hpp:349: error: no match for call to ‘( const boost::parallel::distributed_property_map< boost::parallel::mpi::bsp_process_group, boost::detail::parallel ::global_descriptor_property_map, boost ::vec_adj_list_vertex_property_map< boost::adjacency_list< boost::listS, boost::vecS, boost::directedS, boost ::property< boost::vertex_name_t, unsigned int, boost::property< boost::vertex_rank_t, int, boost::no_property> >, boost::property< boost::edge_locally_owned_t, bool, boost::property< boost::edge_target_processor_id_t, int, boost ::property< boost::edge_weight_t, double, boost ::no_property> > >, boost::no_property, boost ::listS>, boost::adjacency_list< boost::listS, boost::vecS, boost::directedS, boost ::property< boost::vertex_name_t, unsigned int, boost::property< boost::vertex_rank_t, int, boost::no_property> >, boost::property< boost::edge_locally_owned_t, bool, boost::property< boost::edge_target_processor_id_t, int, boost ::property< boost::edge_weight_t, double, boost ::no_property> > >, boost::no_property, boost ::listS> *, unsigned int, unsigned int &, boost ::vertex_name_t> >::assimilate_from_reduce< boost::property_reduce::apply>) (unsigned int &, unsigned int &)’ ../../../../boost/parallel/distributed_property_map.hpp:395: candidates are: void boost::parallel::distributed_property_map< boost::parallel::mpi::bsp_process_group, boost::detail::parallel ::global_descriptor_property_map, boost ::vec_adj_list_vertex_property_map< boost::adjacency_list< boost::listS, boost::vecS, boost::directedS, boost::property< boost::vertex_name_t, unsigned int, boost::property< boost::vertex_rank_t, int, boost::no_property> >, boost ::property< boost::edge_locally_owned_t, bool, boost::property< boost::edge_target_processor_id_t, int, boost::property< boost::edge_weight_t, double, boost::no_property> > >, boost::no_property, boost::listS>, boost::adjacency_list< boost::listS, boost::vecS, boost::directedS, boost::property< boost::vertex_name_t, unsigned int, boost::property< boost::vertex_rank_t, int, boost::no_property> >, boost ::property< boost::edge_locally_owned_t, bool, boost::property< boost::edge_target_processor_id_t, int, boost::property< boost::edge_weight_t, double, boost::no_property> > >, boost::no_property, boost::listS> *, unsigned int, unsigned int &, boost::vertex_name_t> >::assimilate_from_reduce< boost::property_reduce::apply > ::operator()( const boost::property_traits::key_type &, const boost ::property_traits< boost::vec_adj_list_vertex_property_map< boost::adjacency_list< boost::listS, boost::vecS, boost::directedS, boost ::property< boost::vertex_name_t, unsigned int, boost::property< boost::vertex_rank_t, int, boost::no_property> >, boost::property< boost::edge_locally_owned_t, bool, boost::property< boost::edge_target_processor_id_t, int, boost ::property< boost::edge_weight_t, double, boost ::no_property> > >, boost::no_property, boost ::listS>, boost::adjacency_list< boost::listS, boost::vecS, boost::directedS, boost ::property< boost::vertex_name_t, unsigned int, boost::property< boost::vertex_rank_t, int, boost::no_property> >, boost::property< boost::edge_locally_owned_t, bool, boost::property< boost::edge_target_processor_id_t, int, boost ::property< boost::edge_weight_t, double, boost ::no_property> > >, boost::no_property, boost ::listS> *, unsigned int, unsigned int &, boost ::vertex_name_t> >::value_type &) const -- dave at boost-consulting dot com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pcarlini at unitus dot it Version|4.2.0 |4.2.4 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25185