+template<>
+struct BinFloat::MatchingInt<float> { typedef std::uint32_t Type; };
+
+template<>
+struct BinFloat::MatchingInt<double> { typedef std::uint64_t Type; };
+
+template<typename T>
+inline BinFloat BinFloat::explode_iec559(T v)
+{
+ typename MatchingInt<T>::Type i;
+ memcpy(&i, &v, sizeof(T));
+ return explode(i, sizeof(T)*CHAR_BIT);
+}
+
+template<typename T>
+inline T BinFloat::compose_iec559()
+{
+ typename MatchingInt<T>::Type i = compose(sizeof(T)*CHAR_BIT);
+ T v;
+ memcpy(&v, &i, sizeof(T));
+ return v;
+}
+