История изменений
Исправление phoenix, (текущая версия) :
смотря какой эффективности хочется. Если сэкономить строчек кода то
A.Add(vectorX.begin(), vectorX.end())
если хочется избежать копирования то (коль скоро проты movable) в твоем цикле
A.Reserve(size)
{
*x = std::move(*iter)
}
если message X{} не сильно сложный, то поэлементное копирование через ->set_v
может оказаться еще быстрее
Еще как вариант можно накапливать не vector, а сразу RepeatedField [1], который тоже movable.
Исходная версия phoenix, :
смотря какой эффективности хочется. Если сэкономить строчек кода то
A.Add(vectorX.begin(), vectorX.end())
если хочется избежать копирования то (коль скоро проты movable) в твоем цикле
*x = std::move(*iter)
если message X{} не сильно сложный, то поэлементное копирование через ->set_v
может оказаться еще быстрее
Еще как вариант можно накапливать не vector, а сразу RepeatedField [1], который тоже movable.