Validate float number in C++ (nan, inf) ?

Joined
Jan 10, 2007
Messages
43,898
Location
In The Machine
Lets say we have a class to represent a river:
In
class River
{
public:
** void SetUpstreamFlow(const float upstreamFlow);

private:
** float m_upstreamFlow;
}

Do you think that it would be "over kill" to have a precondition like this:

void River::SetUpstreamFlow(const float upstreamFlow)
{
*** // preconditions
*** if (isnan(upstreamFlow) || isinf(upstreamFlow) || upstreamFlow < 0.0f)
*** {
*** ** throw std::invalid_argument("River::SetUpstreamFlow()");
*** }

*** m_upstreamFlow = upstreamFlow;
}

In our application we've got -1.#IND sometimes on resulting files. I thinks that we could catch those errors early with some precondition like this.What would you do ?

Thanks


More...

View All Our Microsoft Related Feeds
 
Back
Top