
Ben Hutchings <ben.hutchings@businesswebsoftware.com> wrote: []
There's one possible problem I noticed, which is that an allocated buffer will be aligned properly for boost::detail::atomic_count but perhaps might not be aligned properly for char_t (or to whatever buffer_storage_alignment specifies). Let me apply the James Kanze test [*]: is it safe to create a const_string<double> on a SPARC?
[*] See <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8670> if you don't know what I'm talking about.
I fixed it using the union trick. But I think there might be another solution. The standard states in 5.3.4.10 that arrays of char's allocated with new expression are always properly aligned for types whose size is no greater than the size of the array. Does allocator<char>::allocate() have the same requirement? I could not find it in my copy of the standard. -- Maxim Yegorushkin