Fernando Cacciola (Home) wrote: [...]
>> Well it depends on the platform but if sizeof(bool) == sizeof(int) on > Intel, > > ^^^^^^^ > Were does this 'int' comes from? sizeof(bool) may vary, you just don't know (1, 4, 8, ...). On Intel, if sizeof(bool) == 4 == sizeof(int) optional<>::m_storage will be aligned to the next integer boundary. >> m_storage will be aligned to the next word boundary i.e. aligned >> like an integer. >> > Anyway, you just said that it depends on the platform, so I wouldn't > say > that m_storage *is* > aligned like bool, at most, it could be. Yes, exactly. >>>> - Maybe aligned_storage<> should always destruct its object. It >>>> would be the user's responsability to construct the object before >>>> its destruction, otherwise the result would be undefined. >>>> >>> Why would this be useful? >> >> I don't know, it is just another alternative that I personally >> prefer. >> > Why do you prefer this? Because the main purpose of aligned_storage<> is to postpone its construction? This means that it *must* be constructed sooner or later? >>>> - Maybe we could create 2 separate type lists if optional<> is used >>>> many times in the same object, gathering m_initialized types and >>>> m_storage in separate lists: >>>> >>> What for ? >> >> I think bool arrays use bitfields >> > Which bool arrays? > > bool x[..] ; > > dont't. > > std::vector<bool> > > maybe, but are less efficient in that case. I guess boost::array<bool, size_t> is also optimized...? Philippe A. Bouchard _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost