Neale,

As far as I can see, the compiler is bitching that there is no != operator
defined for the iterator types on either side of the second argument to the
for() clause.

A suggestion: try expressing that 2nd arg to the for() clause as

      !( i == data.end_roots() )

If there is an equality method defined for those objects, this should
uncover it. If that doesn't work, try asking the author for a fix. Chances
are you're not the only who will find (or has found) it.

--Jim--
James S. Tison
Senior Software Engineer
TPF Laboratory / Architecture
IBM Corporation
[EMAIL PROTECTED]



                      "Ferguson, Neale"
                      <Neale.Ferguson@Software        To:       [EMAIL PROTECTED]
                      AG-USA.com>                     cc:
                      Sent by: Linux on 390           Subject:
                      Port
                      <[EMAIL PROTECTED]
                      >


                      08/29/2002 13:41
                      Please respond to Linux
                      on 390 Port





I am a C++ dummy so can any one tell me what I should look for to fix the
following. The code says:

void CallStack::Output(ostream &os)
{

    total_time = data.total_time();

    for (ProfileData::const_arc_iterator i = data.begin_roots();
         i != data.end_roots(); ++i)
    {
        os << root << ' ' << get_func_time(*i) << '\n';
        output_node(os, *i, 1);
    }
}

The compiler bitches:

callstack.C: In member function `void CallStack::Output(std::ostream&)':
callstack.C:83: no match for `ProfileData::const_arc_iterator& !=
   ProfileData::const_arc_iterator' operator

Reply via email to