15 lines
342 B
C++
15 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
|