Здравствуйте, CodeMonkey, Вы писали:
BFE>>N/2 одновременно запущенных корутин сделают своё дело. Точно! Шаблонная Variadic функция запускающая каждый swap в отдельном процессе.
CM>Самый большой вопрос — как на выходе получить массив Конверсия в массив из всего этого добра сожрет больше ресурсов, чем просто разворот в цикле (и делать это надо в один поток, поскольку см пункт 3)
а зачем его получать?:
template <class T>
void Swap(T& l, T& r)
{
T t = std::move(l);
l = std::move(r);
r = std::move(t);
}
std::array<int, 4> arr{{1,2,3,4}};
std::thread t1(Swap<int, int>, arr[0], arr[3]);
std::thread t2(Swap<int, int>, arr[1], arr[2]);
...