On Sat, 27 Apr 2019 at 19:18, Peter Dimov via Boost
There are two things that I suspect need to be fixed in Boost.Endian, but the changes are breaking.
1. endian_arithmetic<...> derives publicly from endian_buffer<...>. Intuitively, this inheritance relationship doesn't seem right, and it prevents endian_arithmetic from being a C++03 POD, due to having a base class.
2. the data() member function returns char const*. This type is strongly associated with null-terminated strings, and as such, using it for the underlying bytes of the endian object seems error-prone. I'd much prefer to return `unsigned char const*` from data() (although in C++17 `std::byte const*` might be even better.)
I can't however estimate with any certainty whether the (mostly aesthetic) benefit of these changes would outweigh the users' annoyance from their code being broken for no strong reason.
Comments?
Making great omelettes requires breaking great eggs. Fixing up old interfaces after a library upgrade is a trivial job. Bitching about it takes longer than doing it. Let them bitch. Move forward with purpose.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Richard Hodges hodges.r@gmail.com office: +442032898513 home: +376841522 mobile: +376380212