Lange Fehlermeldung aber keine Zeile mit Ursprungsfehler



  • Hallo!

    Ich habe folgendes Problem:

    In einer Datei, die ziemlich TMP, Boost usw. verwendet, zeigt mir mein Compiler (gcc 4.2) nicht an, wo der Fehler liegt, sondern verweist immer nur auf eine Funktion, die aber einwandfrei ist.

    Die Fehler sehen in etwa immer so aus:

    /usr/local/include/boost/spirit/home/classic/core/scanner/scanner.hpp:163:   
    instantiated from ‘void boost::spirit::classic::action_policy::
    do_action(const ActorT&, AttrT&, const IteratorT&, const IteratorT&)
     const [with ActorT = boost::function<void ()(boost::spirit::classic::position_iterator<boost::spirit::classic
    ::multi_pass<std::istream_iterator<wchar_t, wchar_t, std::char_traits
    <wchar_t>, long int>, boost::spirit::classic::multi_pass_policies::input_iterator, 
    boost::spirit::classic::multi_pass_policies::ref_counted, boost::spirit::classic::multi_pass_policies::buf_id_check, 
    boost::spirit::classic::multi_pass_policies::std_deque>, 
    boost::spirit::classic::file_position_base<std::basic_string<wchar_t, 
    std::char_traits<wchar_t>, std::allocator<wchar_t> > >, 
    boost::spirit::classic::nil_t>, 
    boost::spirit::classic::position_iterator<boost::spirit::classic::multi_pass<std
    ::istream_iterator<wchar_t, wchar_t, std::char_traits<wchar_t>, long int>, 
    boost::spirit::classic::multi_pass_policies::input_iterator, boost::spirit::classic::multi_pass_policies::ref_counted, 
    boost::spirit::classic::multi_pass_policies::buf_id_check, 
    boost::spirit::classic::multi_pass_policies::std_deque>, 
    boost::spirit::classic::file_position_base<std::basic_string<wchar_t, 
    std::char_traits<wchar_t>, std::allocator<wchar_t> > >, 
    boost::spirit::classic::nil_t>)>, AttrT = const wchar_t, IteratorT = 
    boost::spirit::classic::position_iterator<boost::spirit::classic::multi_pass<std
    ::istream_iterator<wchar_t, wchar_t, std::char_traits<wchar_t>, long int>, 
    boost::spirit::classic::multi_pass_policies::input_iterator, 
    boost::spirit::classic::multi_pass_policies::ref_counted, 
    boost::spirit::classic::multi_pass_policies::buf_id_check, 
    boost::spirit::classic::multi_pass_policies::std_deque>, 
    boost::spirit::classic::file_position_base<std::basic_string<wchar_t, 
    std::char_traits<wchar_t>, std::allocator<wchar_t> > >, 
    boost::spirit::classic::nil_t>]’
    

    und so weiter. Immer wieder zwischen solchen Fehlern kommt eingeschoben:

    json_spirit_reader.cpp:822:   instantiated from here
    

    Diese Zeile sieht folgendermaßen aus:

    void json_spirit::read_or_throw( std::wstring::const_iterator& begin, std::wstring::const_iterator end, wmValue& value )
    {
        begin = read_range_or_throw( begin, end, value );
    }
    

    was für mich nicht wirklich falsch aussieht. Wie soll ich denn jetzt den Fehler finden??

    Grüße,

    Niels



  • ALso von wo der Fehler kommt, wissen wir dann schonmal. Aber welcher Fehler ist es? Diese Zeile sehe ich nicht.



  • Tschuldigung.

    Der Fehler sieht so aus:

    /Users/niels/Downloads/json_spirit_v4.02/json_spirit/json_spirit_reader.cpp:822:   instantiated from here
    /usr/local/include/boost/spirit/home/classic/core/scanner/scanner.hpp:132: 
    error: no match for call to ‘(const boost::function<void 
    ()(boost::spirit::classic::position_iterator<boost::spirit::classic::multi_pass<
    std::istream_iterator<wchar_t, wchar_t, std::char_traits<wchar_t>, long int>, 
    boost::spirit::classic::multi_pass_policies::input_iterator, 
    boost::spirit::classic::multi_pass_policies::ref_counted, 
    boost::spirit::classic::multi_pass_policies::buf_id_check, 
    boost::spirit::classic::multi_pass_policies::std_deque>, 
    boost::spirit::classic::file_position_base<std::basic_string<wchar_t, 
    std::char_traits<wchar_t>, std::allocator<wchar_t> > >, 
    boost::spirit::classic::nil_t>, 
    boost::spirit::classic::position_iterator<boost::spirit::classic::multi_pass<std
    ::istream_iterator<wchar_t, wchar_t, std::char_traits<wchar_t>, long int>, 
    boost::spirit::classic::multi_pass_policies::input_iterator, 
    boost::spirit::classic::multi_pass_policies::ref_counted, 
    boost::spirit::classic::multi_pass_policies::buf_id_check, 
    boost::spirit::classic::multi_pass_policies::std_deque>, 
    boost::spirit::classic::file_position_base<std::basic_string<wchar_t, 
    std::char_traits<wchar_t>, std::allocator<wchar_t> > >, 
    boost::spirit::classic::nil_t>)>) (const wchar_t&)’
    


  • Nichts? Ich will ja nur wissen, wie ich vorgehen sollte um den Fehler zu finden!



  • Du darfst ruhig etwas geduldiger sein. 4 Stunden sind keine Ewigkeit.

    Wie sieht denn read_range_or_throw aus?


Anmelden zum Antworten