
The following works with me in visual studio with toolset v120 and v140. #include <boost/multiprecision/cpp_int.hpp> #include <boost/multiprecision/cpp_bin_float.hpp> #include <iostream> typedef boost::multiprecision::int128_t int128_t; typedef boost::multiprecision::cpp_bin_float_quad float128_t; void main() { float128_t floatVal("6.0"); int128_t iVal(floatVal.convert_to<int128_t>()); std::cout << iVal << std::endl; } If I change it to have a fractional component, then indeed I get an exception...maybe that's what you mean. I personally only need the above behavior (though keeping the c++ truncation semantics might make sense as a long term goal...but i digress). I always floor/ceil because call convert_to<int128_t>(). Using boost 1.61 and gcc version 4.4.7, the above also compiles and works. Rob