As you said in the question, boost 1.48 introduced boost::move
, a library that emulates move semantics with C++03. This was developed by Ion Gaztanaga, who also (mostly) wrote and currently maintains boost::intrusive
and boost::container
.
Both intrusive and container support move semantics - in fact boost::intrusive
has to support move semantics for boost::container
to, because boost::container
is basically a bunch of non-intrusive containers implemented by wrapping their boost::intrusive
counterparts. It looks to me like intrusive/container were the motivation for writing boost::move
, so it's not surprising that they have a head start on the rest of boost.
But it's import to note here that there is no boost roadmap or committee - boost is just a collection of libraries that share distribution, a website, and a review/quality control process. You have to consider each library as a separate project, which will only be updated if and when the authors/maintainers are interested in doing the work (or of course, when you send them a patch!).
The boost 1.48/1.49/1.50/1.51/1.52 release notes are the best place to look for solid answers:
- Boost.Interprocess has support since 1.45, both C++11 and C++03. Before 1.48, this contained the code that became boost.move.
- Boost.Asio has support since 1.47; no emulation in C++03
- Boost.Intrusive gained support via boost.move in 1.48 (C++11, C++03)
- Boost.Container was new in 1.48 with support via boost.move (C++11, C++03)
- Boost.Icl gained support via boost.move in 1.49 (C++11, C++03)
- Boost.Unordered gained support via boost.move in 1.49 (C++11, with a
#define
to enable emulation in C++03)
- Boost.Thread supports C++03 emulation w/boost.move since 1.50, older versions have C++11-only support
- Boost.Function added C++11-only support in 1.52