Opened 9 years ago
#9013 new Feature Requests
Create enum to make sign result more readable.
| Reported by: | Owned by: | John Maddock | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | math |
| Version: | Boost 1.54.0 | Severity: | Cosmetic |
| Keywords: | math, sign, enum type | Cc: |
Description
The function 'sign' return 1, 0 or -1 depending on the signal of the z, but comparing the result with -1, 0 or 1 constants could make the source code bad readable specially for people that doesn't know what the 'sign' function return.
if (math::sign(value) == -1){
....
}
I propose to create an enumerate type to test the result of the function with a constant, to create a more readable code. The compatibility with the previous implementation of the function is not broken.
Suggested implementation of code:
enum Sign
{
SIGN_NEGATIVE = -1,
SIGN_ZERO = 0,
SIGN_POSITIVE = 1
}
template <class T>
inline Sign sign BOOST_NO_MACRO_EXPAND(const T& z)
{
return (z == 0) ? SIGN_ZERO : (boost::math::signbit)(z) ? SIGN_NEGATIVE : SIGN_POSITIVE;
}
The previous example comparison could be write as:
if (math::sign(value) == math::SIGN_NEGATIVE){
....
}
Note:
See TracTickets
for help on using tickets.
