Boost.ContainerИспользованиеBoost.Moveдля реализации семантики перемещения как в компиляторах C++03, так и C++11. Однако, как объясняется вОграничения эмуляции, в компиляторах C++03 есть некоторые ограничения, которые могут удивить.Boost.ContainerПользователи.
Наиболее заметная проблема заключается в том, что контейнерыBoost.Containerразмещаются в структуре с оператором назначения, генерируемым компилятором:
class holder
{
   boost::container::vector<MyType> vect;
};
void func(const holder& h)
{
   holder copy_h(h); 
   
   
   
}
Это ограничение заставляет пользователя определять конст-версию присвоения копии во всех классах, содержащих контейнеры, что может раздражать в некоторых случаях.