This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/49152] Unhelpful diagnostic for iterator dereference
- From: "giecrilj at stegny dot 2a.pl" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 27 Sep 2011 22:23:34 +0000
- Subject: [Bug c++/49152] Unhelpful diagnostic for iterator dereference
- Auto-submitted: auto-generated
- References: <bug-49152-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49152
--- Comment #8 from Christopher Yeleighton <giecrilj at stegny dot 2a.pl> 2011-09-27 22:23:34 UTC ---
> I agree that this would be an improvement, even without clang's selective
> typedef unwrapping. But I have some doubts such a patch will be accepted. I was
> told in a couple of occasions that I cannot just remove the expression from the
> diagnostic and rely on the user to look up the source code location.
What follows is an expression regurgitated by g++ for your convenient perusal.
You might want to show it to the person who expresses such strong opinions.
Ask him gently to tell you what it means.
doit.cpp:290:129: error: no match for âoperator<<â in âstd::cout <<
boost::range::equal_range [with ForwardRange =
boost::range_detail::transform_range<boost::value_factory<ls::file_rec<char>::as_char0>,
std::vector<ls::file_rec<char> > >, Value = int, typename
boost::range_iterator<const ForwardRange>::type =
boost::transform_iterator<boost::value_factory<ls::file_rec<char>::as_char0>,
__gnu_cxx::__normal_iterator<ls::file_rec<char>*,
std::vector<ls::file_rec<char> > >, boost::use_default,
boost::use_default>]((*(const
boost::range_detail::transform_range<boost::value_factory<ls::file_rec<char>::as_char0>,
std::vector<ls::file_rec<char> > >*)(& boost::range_detail::operator| [with
InputRng = std::vector<ls::file_rec<char> >, UnaryFunction =
boost::value_factory<ls::file_rec<char>::as_char0>]((* & lv_fr), (*(const
boost::range_detail::transform_holder<boost::value_factory<ls::file_rec<char>::as_char0>
>*)(&
boost::adaptors::{anonymous}::transformed.boost::range_detail::forwarder<Holder>::operator()
[with T = boost::value_factory<ls::file_rec<char>::as_char0>, Holder =
boost::range_detail::transform_holder]((boost::value_factory<ls::file_rec<char>::as_char0>(),
boost::value_factory<ls::file_rec<char>::as_char0>()))))))), (*
&((int)a_n.std::basic_string<_CharT, _Traits, _Alloc>::operator[] [with _CharT
= char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>,
std::basic_string<_CharT, _Traits, _Alloc>::reference = char&,
std::basic_string<_CharT, _Traits, _Alloc>::size_type = long unsigned
int](0ul))))â