Boost logo

Boost Users :

Subject: [Boost-users] What is the best way to obtain a constant one for any numeric type?
From: Javier Dehesa (javidcf_at_[hidden])
Date: 2014-05-19 06:52:48


Is there any trait in Boost that allows me to get the value of one for
any numeric type?

What I'm looking for is something that would work like the following:

boost::numeric_traits<int>::one; // 1
boost::numeric_traits<long>::one; // 1L
boost::numeric_traits<double>::one; // 1.0
boost::numeric_traits<float>::one; // 1.0f

And so on. Does it exist, or something equivalent? I've looked into
NumericConversion, but I haven't quite found something similar. What I'm
using now is something equivalent to the following:

template<class Number>
Number one()
{
  return Number(1);
}

Maybe this is safe enough?

I know I can do this trait by myself, but I would like to avoid it if
possible, specially considering that I'm working on an already complex
Boost library.

Thanks.

-- 
Javier Dehesa

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net