$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [boost::endian] Request for comments/interest
From: Dave Handley (Dave.Handley_at_[hidden])
Date: 2010-05-28 15:29:38
"Cliff Green" wrote:
> In most general marshalling / serialization designs where portable binary
> values are required, the transform step (from "wire" to "object / memory"
> model) requires a copy anyway. The low-level endian facilities should not
> require an extra copy, but trying to minimize all copying and constraining
> the endian library design might be misguided.
In the sort of code I write, an endian swapper that had copies that weren't necessarily required, especially in the "do nothing" case where network and machine have the same endianness would not be fit for purpose.
" " wrote:
> This is not completly true, as your implementation will at least visit the instance.
I disagree. If you look in more detail at the code that Tom has submitted, the "do nothing" case does exactly that - nothing. Specifically line 147-154 has the template specialisations that get invoked when a no-op is required, and they have no code in them. Only in the case where an endian swap is required does the implementation walk through the whole data structure.
Dave