diff --git a/include/boost/unordered/detail/foa/core.hpp b/include/boost/unordered/detail/foa/core.hpp index 2e58403e..bdf5032c 100644 --- a/include/boost/unordered/detail/foa/core.hpp +++ b/include/boost/unordered/detail/foa/core.hpp @@ -1280,10 +1280,7 @@ public: } table_core(table_core&& x,const Allocator& al_): - hash_base{empty_init,std::move(x.h())}, - pred_base{empty_init,std::move(x.pred())}, - allocator_base{empty_init,al_},arrays(new_arrays(0)), - ml{initial_max_load()},size_{0} + table_core{std::move(x.h()),std::move(x.pred()),al_} { if(al()==x.al()){ std::swap(arrays,x.arrays); @@ -1798,6 +1795,15 @@ private: using pred_base=empty_value; using allocator_base=empty_value; + /* used by allocator-extended move ctor */ + + table_core(Hash&& h_,Pred&& pred_,const Allocator& al_): + hash_base{empty_init,std::move(h_)}, + pred_base{empty_init,std::move(pred_)}, + allocator_base{empty_init,al_},arrays(new_arrays(0)), + ml{initial_max_load()},size_{0} + {} + arrays_type new_arrays(std::size_t n) { return arrays_type::new_(al(),n);