- ptrdiff_t new_size = std::max(2 * old_size, ptrdiff_t(1)); + ptrdiff_t new_size = std::max(ptrdiff_t (2 * old_size), ptrdiff_t (1)); Should be: ptrdiff_t new_size = std::max(static_cast<ptrdiff_t>(2 * old_size), ptrdiff_t (1));