"Philippe A. Bouchard" <[EMAIL PROTECTED]> escribi� en el mensaje news:[EMAIL PROTECTED] > Fernando Cacciola wrote: > > [...] > > > It seems there is something one of us don't understand... > > optional<T>::m_storage has nothing to do with alignment to 'int' > > unless T happens to be aligned just like 'int', which won't always be > > the case, so I don't > > see the relation between optional's storage and the correlation > > bool<->int you > > make above. > > For example, the storage for optional<long double> won't be aligned > > to a double-word boundary like 'int' does on 32-bit platforms, for > > instance. > > Yes it does, because m_storage is preceded by m_initialized which is of type > bool in optional<>. m_storage will thus follow bool alignment requirement. > Aha, now I know what did you mean... "within" optional<>, m_storage is aligned to the next word boundary... I agree this would be the case if sizeof(bool)==sizeof(int).
Ithough you were talking about m_storage itself, that is, of aligned_storage<T> per se. Anyway, just for the record, the C++ type 'bool' has an 'underlying type' which is required to be one of the integer types but not necessarily 'int'. > > [snip optimized array<bool,N>] > > I could have made a mistake in my example, but operator [] in assembler code > will be quite fast (and, shl, ...) when it comes to logical operations. I > don't think it will be twice slower. > That would have to be _measured_; my guess is that it could be twice slower, specially considering that I don't think boost sources will ever include assembly code; it's a portability nightmere. > > > So, what are you trying to optimize with this bool array? > > and most importantly, why do you feel that such optimization is > > needed? Consider that gaining storage, say 31 bits, per optional<> > > will incurr in > > a significant overhead, so in order to think that the gain is needed > > you need to weight size/speed benefits. > > This sort of things are typically considered only afer some benchmarks > > shown the need for the optimization. > > Even tough array<bool> is not optimized, the boolean values will follow each > other and will not waste any space between themselves. > Yes, though I still can't see if this would be _needed_. Fernando Cacciola _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
