October 28, 2008
hi, all!

I'm trying to compile yassl using dmc for dos real mode. everything seems ok but i've got an error: "need explicit cast to convert" in the following code ():

...
const Integer& Multiply(const Integer &a, const Integer &b) const
        {
            return result1 = a * b % modulus; // error is here!
        }
...
protected:
    Integer modulus;
    mutable Integer result, result1;
...

Integer is a class with lots of methods.
should I remove this "const" from all methods like "Multiply" or is
there another way?

thanx!
October 29, 2008
Hello,

konst wrote ...
> I'm trying to compile yassl using dmc for dos real mode. everything seems ok but i've got an error: "need explicit cast to convert" in the following code ():
> 
> ...
> const Integer& Multiply(const Integer &a, const Integer &b) const
>         {
>             return result1 = a * b % modulus; // error is here!
>         }
> ...
> protected:
>     Integer modulus;
>     mutable Integer result, result1;
> ...
> 
> Integer is a class with lots of methods.
> should I remove this "const" from all methods like "Multiply" or is
> there another way?

Seems to be a bug in DMC. My PC-Lint and the borland C++ compile this example, but DMC does not:

   class Integer {
   public:
      Integer();
      Integer &  operator= (const Integer &rhs);
      friend Integer  operator* (const Integer &a, const Integer &b);
      friend Integer  operator% (const Integer &a, const Integer &b);
   };

   class MyInteger {
   public:
      const Integer& Multiply(const Integer &a, const Integer &b) const
           {
               return result1 = a * b % modulus; // error is here!
           }
   protected:
       Integer modulus;
       mutable Integer result, result1;
   };

   int foo()
   {  MyInteger a, b, c;
      return 0;
   }

Maybe there is a problem with the handling of mutable here?


- Heinz