codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <boost/static_assert.hpp> template <typename To, typename From> inline To bitwise_cast(From const & from) { BOOST_STATIC_ASSERT(sizeof(To) == sizeof(From)); union { To to; From from; } u; u.from = from; return u.to; } #include <iostream> #include <limits> int main() { std::cout << bitwise_cast<int>(123.456f) << std::endl; std::cout << bitwise_cast<int>(0.0f) << std::endl; std::cout << bitwise_cast<int>(1.0f) << std::endl; std::cout << bitwise_cast<int>(std::numeric_limits<float>::infinity()) << std::endl; std::cout << bitwise_cast<int>(std::numeric_limits<float>::quiet_NaN()) << std::endl; }
Private
[
?
]
Run code
Submit