I encounter very long symbol due to expanded typedefs and template magic. The VC compiler does not keep track of original typedefs as clang does and expands them all. The symbols get truncated at some max length like the following example. This makes the symbols illegible and worse, the debug visualizers cannot match anymore. Example:boost::intrusive::list< set_partition_base<boost::transform_iterator<CLayoutSolverT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion>,SDragSpanDescriptor,void *>::FGridlineCast, boost::transform_iterator<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridlineBuckets::FGetGridline, std::_Vector_iterator<std::_Vector_val<std::_Simple_types<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridline>, std::_Vec_base_types<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridline, std::allocator<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridline> > > >, boost::use_default,boost::use_default>, boost::use_default,boost::use_default>, STargetPosition, F2wayFrom3way<fn_compare,boost::algorithm::is_less>, set_partition_value_traits< boost::transform_iterator<CLayoutSolverT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion>,SDragSpanDescriptor,void *>::FGridlineCast, boost::transform_iterator<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridlineBuckets::FGetGridline, std::_Vector_iterator<std::_Vector_val<std::_Simple_types<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridline>, std::_Vec_base_types<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridline, std::allocator<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridline> > > >, boost::use_default,boost::use_default>,boost::use_default,boost::use_default> > >::part, boost::intrusive::member_hook< set_partition_base< boost::transform_iterator<CLayoutSolverT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion>,SDragSpanDescriptor,void *>::FGridlineCast, boost::transform_iterator<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridlineBuckets::FGetGridline, std::_Vector_iterator<std::_Vector_val<std::_Simple_types<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridline>, std::_Vec_base_types<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridline, std::allocator<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridline> > > >, boost::use_default,boost::use_default>,boost::use_default,boost::use_default>, STargetPosition, F2wayFrom3way<fn_compare,boost::algorithm::is_less>, set_partition_value_traits< boost::transform_iterator<CLayoutSolverT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion>,SDragSpanDescriptor,void *>::FGridlineCast, boost::transform_iterator<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridlineBuckets::FGetGridline, std::_Vector_iterator<std::_Vector_val<std::_Simple_types<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridline>, std::_Vec_base_types<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,void *>::SGridline, std::allocator<SSolveCollisionsT<SGridlinePayloadT<SSourceGridlineT<CNonHandleDragT<CDragTraits>::TGridlinePayloadUnion> >,SDragSpanDescriptor,v48134b84270b613575081ef18293cc09
Visual Studio/Team Foundation Server/.NET Framework Tooling Version
Steps to reproduce
Product Language
Operating System
Operating System Language
Actual results
Expected results