
Christopher Kohlhoff wrote:
It doesn't? I was under the impression that array<T> only required that T be CopyConstructible, unlike vector<T> which also requires T be Assignable.
The basic problem is that the following is not legal C++: strict bad { const int x; }; If a class contains const non-static members, they must have a user-declared default constructor, so this basically rules out PODs or any type with trivial default constructor. It is annoying, because even though 'bad' looks safe to use with aggregate initialization, it is not allowed.
Search for BOOST_WORKAROUND in boost/asio/buffer.hpp. I assume you're using BDS2006 -- I only have access to BCB6. What's the correct value of BORLANDC for the newer compiler?
Current compiler is version 0x582, when patched. It is probably not worth worrying about unpatched versions. -- AlisdairM