Compilation of math_parser.C with DEC cxx fails

cxx: Error: math_parser.C, line 189: #304 no instance of overloaded function
          "std::basic_istream<charT, traits>::get [with charT=char,
          traits=std::char_traits<char>]" matches the argument list
            argument types are: (unsigned char)
                yyis->get(c);

and in several other places.

The relevant code is:

unsigned char LexGetArg(unsigned char lf, bool accept_spaces = false)
{
        while (yyis->good()) {
                unsigned char c;
                yyis->get(c);
                ...
        }
}


The relevant code in the <istream> header file is

template<class charT, class traits>
class _RWSTDExportTemplate basic_istream : virtual public basic_ios<charT,
traits> {
public:
    istream_type& get(char_type& c);
}

So it looks like the correct fix is to have:
{
        while (yyis->good()) {
                char c;
                yyis->get(c);
                ...
        }
}

Is this correct?
Angus

Reply via email to