Ah, evidently boost::multiarray expects its value_type to
be copy-constructible (at least), which Boost.Intrusive data
structures are not [1]: "Boost.Intrusive containers are
non-copyable and non-assignable." Also explains the failure of
std::vector< boost::intrusive::list >, too, in C++03
mode. In C++11 mode, I guess std::vector (and similar) are
able to fall back to using the move constructors and
assignment operators of the Boost.Intrusive data structures.
- Jeff
[1]
http://www.boost.org/doc/libs/1_52_0/doc/html/intrusive/intrusive_vs_nontrusive.html