pgLab/core/rangechecked_cast.h

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