|
Boost : |
From: Michael Shepanski (mshepanski_at_[hidden])
Date: 2005-11-10 00:55:18
Hello again. I'd like to reawaken this thread because It didn't seem to
reach a conclusion, and the bug that started it continues to cause me pain.
On 10/29/05, Fernando Cacciola <fernando_cacciola_at_[hidden]> wrote:
>
>
> As Martin Bonner suggested, one solution is to factorize the result of
> alignment_of<> so it returns not just any multiple. Unfortunately, we
> can't
> say that the alignment _ought_ to be a power of 2 can we?
>
> An alternative solution that, at least, would work with this very specific
> example, is to compute it as the minimun of sizeof(charT)-sizeof(T) and
> sizeof(Tchar)-sizeof(T)
> That is, adding the char both before and after, and taking the least
> difference.
These both sound like interesting solutions; what do others think?
Are they theoretically correct?
A policy question: what happens if no theoretically correct solution
is found? Would boost::optional then be discontinued? Or would
it be reimplemented in a way that happens to work on all popular
platforms? Or would it switch at compile-time between overtly
platform-specific implementations?
I do hope that the policy is not to keep the current solution until a
theoretically correct solution is comes to light. Not to put too fine a
point on it, the current solution is theoretically incorrect too; the only
thing that distinguishes it from other theoretically incorrect solutions
that have been discussed is that this one fails in practice.
--- Michael Shepanski
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk