typedef endian_buffer<order::little, uint32_t, 32, align::yes> little_uint32_buf_at;
typedef endian_buffer<order::little, uint64_t, 64, align::yes> little_uint64_buf_at;
+ // aligned floating point buffers
+ typedef endian_buffer<order::big, float, 32, align::yes> big_float32_buf_at;
+ typedef endian_buffer<order::big, double, 64, align::yes> big_float64_buf_at;
+ typedef endian_buffer<order::little, float, 32, align::yes> little_float32_buf_at;
+ typedef endian_buffer<order::little, double, 64, align::yes> little_float64_buf_at;
+
// aligned native endian typedefs are not provided because
// <cstdint> types are superior for this use case
typedef little_uint64_buf_t native_uint64_buf_t;
# endif
+ // unaligned floating point buffers
+ typedef endian_buffer<order::big, float, 32, align::no> big_float32_buf_t;
+ typedef endian_buffer<order::big, double, 64, align::no> big_float64_buf_t;
+ typedef endian_buffer<order::little, float, 32, align::no> little_float32_buf_t;
+ typedef endian_buffer<order::little, double, 64, align::no> little_float64_buf_t;
+ typedef endian_buffer<order::native, float, 32, align::no> native_float32_buf_t;
+ typedef endian_buffer<order::native, double, 64, align::no> native_float64_buf_t;
+
// Stream inserter
template <class charT, class traits, BOOST_SCOPED_ENUM(order) Order, class T,
std::size_t n_bits, BOOST_SCOPED_ENUM(align) A>
return boost::endian::endian_load<T, n_bits / 8, Order>( value_ );
}
- char const * data() const BOOST_NOEXCEPT
+ unsigned char const * data() const BOOST_NOEXCEPT
+ {
+ return value_;
+ }
+
+ unsigned char * data() BOOST_NOEXCEPT
{
- return reinterpret_cast< char const* >( value_ );
+ return value_;
}
};
return boost::endian::endian_load<T, n_bits / 8, Order>( value_ );
}
- char const * data() const BOOST_NOEXCEPT
+ unsigned char const * data() const BOOST_NOEXCEPT
{
- return reinterpret_cast< char const* >( value_ );
+ return value_;
+ }
+
+ unsigned char * data() BOOST_NOEXCEPT
+ {
+ return value_;
}
};
return value_;
}
- char const * data() const BOOST_NOEXCEPT
+ unsigned char const * data() const BOOST_NOEXCEPT
+ {
+ return reinterpret_cast< unsigned char const* >( &value_ );
+ }
+
+ unsigned char * data() BOOST_NOEXCEPT
{
- return reinterpret_cast< char const* >( &value_ );
+ return reinterpret_cast< unsigned char* >( &value_ );
}
};