Когда вы изменяете размер vector
, его элементы содержат пустое unique_ptr
(эквивалентно nullptr
):
std::vector <boost::movelib::unique_ptr<eth_socket> > _eth_socket_vect;
_eth_socket_vect.resize(1);
Теперь вы создаете экземпляр eth_socket
, поэтому вызывается его конструктор :
_eth_socket_vect.at(0).reset(new eth_socket(host, port, delimiter, timeout, 1));
Затем вы создаете другой экземпляр и заменяете предыдущий. Итак, сначала вызывается конструктор eth_socket
, а затем вызывается деструктор предыдущего экземпляра:
_eth_socket_vect.at(0).reset(new eth_socket(host, port, delimiter, timeout, 1));