16 lines
342 B
C
16 lines
342 B
C
|
|
#ifndef RANGECHECKED_CAST_H
|
|||
|
|
#define RANGECHECKED_CAST_H
|
|||
|
|
|
|||
|
|
#include <boost/assert.hpp>
|
|||
|
|
#include <limits>
|
|||
|
|
|
|||
|
|
template <typename To, typename From>
|
|||
|
|
To rangechecked_cast(From f)
|
|||
|
|
{
|
|||
|
|
BOOST_ASSERT(f > std::numeric_limits<To>::lowest());
|
|||
|
|
BOOST_ASSERT(f < std::numeric_limits<To>::max());
|
|||
|
|
return static_cast<To>(f);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endif // RANGECHECKED_CAST_H
|