Boost logo

Boost :

From: Cliff Green (cliffg_at_[hidden])
Date: 2006-05-31 15:05:18


I've dealt with (and written) endian utilities for many
years, since almost my full career has involved writing
software for heterogeneous distributed systems. I
definitely think Boost needs a library to ease and
simplify byte endian issues.

But I'm curious as to the rationale for these endian
integer types - I've always written utilities to transform
native (or user-defined) types into a serializable binary
format - including the option for big-endian,
little-endian (or in one project, for "receiver makes
right" endianness). I've never had a need for code that
performs operations on endian types, other than as
"placeholders" for performing I/O with them (whether over
a network, or disk I/O). Are there application use cases
where the application never transforms into / out of
native / UDT's, and always uses these (endian) types
instead?

Specifically, I've written (templatized generic) utilities
that take integers and append them to a character (byte)
buffer in a specified endian format (and the converse
transformation). (Non-integral types are also supported,
with lots of caveats and warnings - floating point type
swapping is full of pitfalls, and any endian / byte
swapping on a UDT has the expected restrictions - POD
single element, no pointers or references, etc.) I would
expect these types of utilities to be used in some form of
serialization design (e.g. with Boost.Serialization).

Anyway, I'm just trying to expand my awareness of various
endian related designs.

Cliff


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk