From 59097ada368a563d120189d09316f092e7ed9da1 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Tue, 15 Oct 2019 18:58:48 +0300 Subject: [PATCH] Change data() to return unsigned char*; add non-const versions --- include/boost/endian/buffers.hpp | 27 +++++-- test/endian_test.cpp | 120 +++++++++++++++---------------- 2 files changed, 81 insertions(+), 66 deletions(-) diff --git a/include/boost/endian/buffers.hpp b/include/boost/endian/buffers.hpp index ad848be..856dbca 100644 --- a/include/boost/endian/buffers.hpp +++ b/include/boost/endian/buffers.hpp @@ -273,9 +273,14 @@ public: return boost::endian::endian_load( 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_; } }; @@ -323,9 +328,14 @@ public: return boost::endian::endian_load( 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_; } }; @@ -366,9 +376,14 @@ public: return value_; } - char const * data() const BOOST_NOEXCEPT + unsigned char const * data() const BOOST_NOEXCEPT { - return reinterpret_cast< char const* >( &value_ ); + return reinterpret_cast< unsigned char const* >( &value_ ); + } + + unsigned char * data() BOOST_NOEXCEPT + { + return reinterpret_cast< unsigned char* >( &value_ ); } }; diff --git a/test/endian_test.cpp b/test/endian_test.cpp index 7512ca6..3ccaef0 100644 --- a/test/endian_test.cpp +++ b/test/endian_test.cpp @@ -225,75 +225,75 @@ namespace little_uint32_at little_align_uint32; little_uint64_at little_align_uint64; - VERIFY(big_8.data() == reinterpret_cast(&big_8)); - VERIFY(big_16.data() == reinterpret_cast(&big_16)); - VERIFY(big_24.data() == reinterpret_cast(&big_24)); - VERIFY(big_32.data() == reinterpret_cast(&big_32)); - VERIFY(big_40.data() == reinterpret_cast(&big_40)); - VERIFY(big_48.data() == reinterpret_cast(&big_48)); - VERIFY(big_56.data() == reinterpret_cast(&big_56)); - VERIFY(big_64.data() == reinterpret_cast(&big_64)); + VERIFY(big_8.data() == reinterpret_cast(&big_8)); + VERIFY(big_16.data() == reinterpret_cast(&big_16)); + VERIFY(big_24.data() == reinterpret_cast(&big_24)); + VERIFY(big_32.data() == reinterpret_cast(&big_32)); + VERIFY(big_40.data() == reinterpret_cast(&big_40)); + VERIFY(big_48.data() == reinterpret_cast(&big_48)); + VERIFY(big_56.data() == reinterpret_cast(&big_56)); + VERIFY(big_64.data() == reinterpret_cast(&big_64)); - VERIFY(big_u8.data() == reinterpret_cast(&big_u8)); - VERIFY(big_u16.data() == reinterpret_cast(&big_u16)); - VERIFY(big_u24.data() == reinterpret_cast(&big_u24)); - VERIFY(big_u32.data() == reinterpret_cast(&big_u32)); - VERIFY(big_u40.data() == reinterpret_cast(&big_u40)); - VERIFY(big_u48.data() == reinterpret_cast(&big_u48)); - VERIFY(big_u56.data() == reinterpret_cast(&big_u56)); - VERIFY(big_u64.data() == reinterpret_cast(&big_u64)); + VERIFY(big_u8.data() == reinterpret_cast(&big_u8)); + VERIFY(big_u16.data() == reinterpret_cast(&big_u16)); + VERIFY(big_u24.data() == reinterpret_cast(&big_u24)); + VERIFY(big_u32.data() == reinterpret_cast(&big_u32)); + VERIFY(big_u40.data() == reinterpret_cast(&big_u40)); + VERIFY(big_u48.data() == reinterpret_cast(&big_u48)); + VERIFY(big_u56.data() == reinterpret_cast(&big_u56)); + VERIFY(big_u64.data() == reinterpret_cast(&big_u64)); - VERIFY(little_8.data() == reinterpret_cast(&little_8)); - VERIFY(little_16.data() == reinterpret_cast(&little_16)); - VERIFY(little_24.data() == reinterpret_cast(&little_24)); - VERIFY(little_32.data() == reinterpret_cast(&little_32)); - VERIFY(little_40.data() == reinterpret_cast(&little_40)); - VERIFY(little_48.data() == reinterpret_cast(&little_48)); - VERIFY(little_56.data() == reinterpret_cast(&little_56)); - VERIFY(little_64.data() == reinterpret_cast(&little_64)); + VERIFY(little_8.data() == reinterpret_cast(&little_8)); + VERIFY(little_16.data() == reinterpret_cast(&little_16)); + VERIFY(little_24.data() == reinterpret_cast(&little_24)); + VERIFY(little_32.data() == reinterpret_cast(&little_32)); + VERIFY(little_40.data() == reinterpret_cast(&little_40)); + VERIFY(little_48.data() == reinterpret_cast(&little_48)); + VERIFY(little_56.data() == reinterpret_cast(&little_56)); + VERIFY(little_64.data() == reinterpret_cast(&little_64)); - VERIFY(little_u8.data() == reinterpret_cast(&little_u8)); - VERIFY(little_u16.data() == reinterpret_cast(&little_u16)); - VERIFY(little_u24.data() == reinterpret_cast(&little_u24)); - VERIFY(little_u32.data() == reinterpret_cast(&little_u32)); - VERIFY(little_u40.data() == reinterpret_cast(&little_u40)); - VERIFY(little_u48.data() == reinterpret_cast(&little_u48)); - VERIFY(little_u56.data() == reinterpret_cast(&little_u56)); - VERIFY(little_u64.data() == reinterpret_cast(&little_u64)); + VERIFY(little_u8.data() == reinterpret_cast(&little_u8)); + VERIFY(little_u16.data() == reinterpret_cast(&little_u16)); + VERIFY(little_u24.data() == reinterpret_cast(&little_u24)); + VERIFY(little_u32.data() == reinterpret_cast(&little_u32)); + VERIFY(little_u40.data() == reinterpret_cast(&little_u40)); + VERIFY(little_u48.data() == reinterpret_cast(&little_u48)); + VERIFY(little_u56.data() == reinterpret_cast(&little_u56)); + VERIFY(little_u64.data() == reinterpret_cast(&little_u64)); - VERIFY(native_8.data() == reinterpret_cast(&native_8)); - VERIFY(native_16.data() == reinterpret_cast(&native_16)); - VERIFY(native_24.data() == reinterpret_cast(&native_24)); - VERIFY(native_32.data() == reinterpret_cast(&native_32)); - VERIFY(native_40.data() == reinterpret_cast(&native_40)); - VERIFY(native_48.data() == reinterpret_cast(&native_48)); - VERIFY(native_56.data() == reinterpret_cast(&native_56)); - VERIFY(native_64.data() == reinterpret_cast(&native_64)); + VERIFY(native_8.data() == reinterpret_cast(&native_8)); + VERIFY(native_16.data() == reinterpret_cast(&native_16)); + VERIFY(native_24.data() == reinterpret_cast(&native_24)); + VERIFY(native_32.data() == reinterpret_cast(&native_32)); + VERIFY(native_40.data() == reinterpret_cast(&native_40)); + VERIFY(native_48.data() == reinterpret_cast(&native_48)); + VERIFY(native_56.data() == reinterpret_cast(&native_56)); + VERIFY(native_64.data() == reinterpret_cast(&native_64)); - VERIFY(native_u8.data() == reinterpret_cast(&native_u8)); - VERIFY(native_u16.data() == reinterpret_cast(&native_u16)); - VERIFY(native_u24.data() == reinterpret_cast(&native_u24)); - VERIFY(native_u32.data() == reinterpret_cast(&native_u32)); - VERIFY(native_u40.data() == reinterpret_cast(&native_u40)); - VERIFY(native_u48.data() == reinterpret_cast(&native_u48)); - VERIFY(native_u56.data() == reinterpret_cast(&native_u56)); - VERIFY(native_u64.data() == reinterpret_cast(&native_u64)); + VERIFY(native_u8.data() == reinterpret_cast(&native_u8)); + VERIFY(native_u16.data() == reinterpret_cast(&native_u16)); + VERIFY(native_u24.data() == reinterpret_cast(&native_u24)); + VERIFY(native_u32.data() == reinterpret_cast(&native_u32)); + VERIFY(native_u40.data() == reinterpret_cast(&native_u40)); + VERIFY(native_u48.data() == reinterpret_cast(&native_u48)); + VERIFY(native_u56.data() == reinterpret_cast(&native_u56)); + VERIFY(native_u64.data() == reinterpret_cast(&native_u64)); - VERIFY(big_align_int16.data() == reinterpret_cast(&big_align_int16)); - VERIFY(big_align_int32.data() == reinterpret_cast(&big_align_int32)); - VERIFY(big_align_int64.data() == reinterpret_cast(&big_align_int64)); + VERIFY(big_align_int16.data() == reinterpret_cast(&big_align_int16)); + VERIFY(big_align_int32.data() == reinterpret_cast(&big_align_int32)); + VERIFY(big_align_int64.data() == reinterpret_cast(&big_align_int64)); - VERIFY(big_align_uint16.data() == reinterpret_cast(&big_align_uint16)); - VERIFY(big_align_uint32.data() == reinterpret_cast(&big_align_uint32)); - VERIFY(big_align_uint64.data() == reinterpret_cast(&big_align_uint64)); + VERIFY(big_align_uint16.data() == reinterpret_cast(&big_align_uint16)); + VERIFY(big_align_uint32.data() == reinterpret_cast(&big_align_uint32)); + VERIFY(big_align_uint64.data() == reinterpret_cast(&big_align_uint64)); - VERIFY(little_align_int16.data() == reinterpret_cast(&little_align_int16)); - VERIFY(little_align_int32.data() == reinterpret_cast(&little_align_int32)); - VERIFY(little_align_int64.data() == reinterpret_cast(&little_align_int64)); + VERIFY(little_align_int16.data() == reinterpret_cast(&little_align_int16)); + VERIFY(little_align_int32.data() == reinterpret_cast(&little_align_int32)); + VERIFY(little_align_int64.data() == reinterpret_cast(&little_align_int64)); - VERIFY(little_align_uint16.data() == reinterpret_cast(&little_align_uint16)); - VERIFY(little_align_uint32.data() == reinterpret_cast(&little_align_uint32)); - VERIFY(little_align_uint64.data() == reinterpret_cast(&little_align_uint64)); + VERIFY(little_align_uint16.data() == reinterpret_cast(&little_align_uint16)); + VERIFY(little_align_uint32.data() == reinterpret_cast(&little_align_uint32)); + VERIFY(little_align_uint64.data() == reinterpret_cast(&little_align_uint64)); }