Boost logo

Boost :

From: David Abrahams (abrahams_at_[hidden])
Date: 2000-12-22 08:58:46


----- Original Message -----
From: "Lois Goldthwaite" <loisg_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Friday, December 22, 2000 5:43 AM
Subject: [boost] Re: BGL, iterator_adaptors, VC6, STLport debug mode

> The mangled names are too long? So make them shorter. I think almost
> every compiler has some length limit; it's just that some limits are
> long enough you don't notice.
>
> This is hokey but can be very effective:
>
> #ifdef BOOST_SHORT_NAMES_FOR_MSVC
> #define iterator_traits b_i_t
> #define is_pointer b_i_p
> ...

Yes, STLport can use this trick, too, but unfortunately none of the symbols
it can shorten come into play here. It's a nasty hack but I guess that doing
this for names in boost::detail might actually help since many are used and
we can also #undef them later. Then again, it might not be sufficient either
so I think I'll take an approach I know will be reliable.

-Dave

FWIW, the symbols which are breaking look like this, /after/ I've played
lots of tricks in STLport to shorten the names of its debug iterator
symbols.

public: struct
boost::iterator_adaptor<class _STLD::_DBG_iter<struct _STLD::_Vmt<class
boost::detail::stored_edge_property<unsigned int,struct boost::property<enum
boost::edge_name_t,class manhattan::nlp::Production const *,struct
boost::no_property> > > >,struct
boost::detail::out_edge_iter_policies<unsigned int>,struct
boost::detail::edge_iter_traits<class boost::detail::edge_desc_impl<struct
boost::directed_tag,unsigned int>,struct
boost::detail::adjacency_list_generator<class boost::adjacency_list<struct
boost::vecS,struct boost::vecS,struct boost::directedS,struct
boost::no_property,struct boost::property<enum boost::edge_name_t,class
manhattan::nlp::Production const *,struct boost::no_property>,struct
boost::no_property>,struct boost::vecS,struct boost::vecS,struct
boost::directedS,struct boost::no_property,struct boost::property<enum
boost::edge_name_t,class manhattan::nlp::Production const *,struct
boost::no_property>,struct boost::no_property>::config::OutEdgeIterTraits> >
& __thiscall boost::iterator_adaptor<class _STLD::_DBG_iter<struct
_STLD::_Vmt<class boost::detail::stored_edge_property<unsigned int,struct
boost::property<enum boost::edge_name_t,class manhattan::nlp::Production
const *,struct boost::no_property> > > >,struct
boost::detail::out_edge_iter_policies<unsigned int>,struct
boost::detail::edge_iter_traits<class boost::detail::edge_desc_impl<struct
boost::directed_tag,unsigned int>,struct
boost::detail::adjacency_list_generator<class boost::adjacency_list<struct
boost::vecS,struct boost::vecS,struct boost::directedS,struct
boost::no_property,struct boost::property<enum boost::edge_name_t,class
manhattan::nlp::Production const *,struct boost::no_property>,struct
boost::no_property>,struct boost::vecS,struct boost::vecS,struct
boost::directedS,struct boost::no_property,struct boost::property<enum
boost::edge_name_t,class manhattan::nlp::Production const *,struct
boost::no_property>,struct boost::no_property>::config::OutEdgeIterTraits>
>::operator=(struct boost::iterator_adaptor<class _STLD::_DBG_iter<struct
_STLD::_Vmt<class boost::detail::stored_edge_property<unsigned int,struct
boost::property<enum boost::edge_name_t,class manhattan::nlp::Production
const *,struct boost::no_property> > > >,struct
boost::detail::out_edge_iter_policies<unsigned int>,struct
boost::detail::edge_iter_traits<class boost::detail::edge_desc_impl<struct
boost::directed_tag,unsigned int>,struct
boost::detail::adjacency_list_generator<class boost::adjacency_list<struct
boost::vecS,struct boost::vecS,struct boost::directedS,struct
boost::no_property,struct boost::property<enum boost::edge_name_t,class
manhattan::nlp::Production const *,struct boost::no_property>,struct
boost::no_property>,struct boost::vecS,struct boost::vecS,struct
boost::directedS,struct boost::no_property,struct boost::property<enum
boost::edge_name_t,class manhattan::nlp::Production const *,struct
boost::no_property>,struct boost::no_property>::config::OutEdgeIterTraits> >
const &))


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk