std::vector<int> getVector()
{
std::vector<int> v(1000000); //1 млн значений
return v;
}
void getVector(std::vector<int> &v)
{
//заполнение v
}
void MyClass::setVector(std::vector<int> &&v)
{
this->vector_ = std::move(v);
}
unsigned char data[image_resolution];
memcpy(data, image_data.toStdString().c_str(), image_resolution);
forward позволят "сохранить" категорию передаваемого выражения. Поэтому будет вызван Container::operator[]() & или Container::operator[]() && в зависимости от категории.
У std::vector только одна общая реализация, но если бы было 2:
forward ничего не копирует, а позволяет не потерять категорию исходного выражения