------- 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<IndexMap>::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<unsigned int>, 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<boost::vertex_name_t>::apply<unsigned int>>)
    (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<unsigned int>, 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<boost::vertex_name_t>::apply<unsigned int> >
    ::operator()(
        const boost::property_traits<IndexMap>::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

Reply via email to