-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 The C++ Standard Library has a reputation for excessively long error messages, but this is one of the best I've seen in a while:
sbuild-keyfile.cc: In member function 'sbuild::string_list sbuild::keyfile::get_keys(const std::string&) const': sbuild-keyfile.cc:62: error: invalid conversion from 'const std::tr1::tuple<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tr1::tuple<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass>, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tr1::tuple<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass> > > >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass>*' to 'std::tr1::tuple<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tr1::tuple<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass>, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tr1::tuple<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass> > > >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass, std::tr1::_NullClass>*' sbuild-keyfile.cc:65: error: 'item_map_types' was not declared in this scope sbuild-keyfile.cc:65: error: 'items' was not declared in this scope In this case, it's nothing but a missing "const": // key, value, comment typedef std::tr1::tuple<std::string,std::string,std::string> item_type; typedef std::map<std::string,item_type> item_map_type; // group, items, comment typedef std::tr1::tuple<std::string,item_map_type,std::string> group_type; typedef std::map<std::string,group_type> group_map_type; const keyfile::group_type * keyfile::find_group(const std::string& group) const; group_type *found_group = find_group(group); [should be "const group_type *".] This made me wonder: why can't the compiler just use the typedef'd names which are actually readable? The above error is far less than readable, and had the error not been trivial, it would have taken a significant amount of head scratching before I found the problem. Are there any tools around which can help with this? What do other folks do in the face of errors like this? Regards, Roger - -- Roger Leigh Printing on GNU/Linux? http://gimp-print.sourceforge.net/ Debian GNU/Linux http://www.debian.org/ GPG Public Key: 0x25BFB848. Please sign and encrypt your mail. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Processed by Mailcrypt 3.5.8+ <http://mailcrypt.sourceforge.net/> iD8DBQFDqaWcVcFcaSW/uEgRAnQXAJ9Z810ZqaG5LEHb86fWDPbPQ9fhPgCePrRD frOxxT1nX2us43I5iWlHizA= =dOfz -----END PGP SIGNATURE----- _______________________________________________ Help-gplusplus mailing list Help-gplusplus@gnu.org http://lists.gnu.org/mailman/listinfo/help-gplusplus