valarray<double>::operator%() not working
Gabriel Dos Reis
gdr@codesourcery.com
Fri Feb 22 10:58:00 GMT 2002
Lance Olav Eastgate <lance@ccmr.cornell.edu> writes:
| When I try to use the binary operator% or operator%= with valarray<double>
| this doesn't work (in gcc 3.0.2). The reason, as far as I understand, is
| that operator% is only defined for integers.
Right.
| The element-by-element
| modulus in _DEFINE_ARRAY_FUNCTION (in valarray_array.h, line 419, gcc
| 3.0.2) thus doesn't work when _Tp is a double. Thus for two doubles or
| floats, std::fmod (or similar) needs to be used.
But valarray<double> isn't intended to be operand of operator%.
You might want to use function objects and the member function
valarray<>::apply() to get the effect you want.
| Perhaps the operator% etc could be overloaded to take two doubles?
That is impossible -- operator overloading works only for user-defined
types (or types "derived" from them).
-- Gaby
More information about the Libstdc++
mailing list