fork download
  1. #include <iostream>
  2. #include <list>
  3. #include <algorithm>
  4. #include <future>
  5.  
  6. template<typename T>
  7. struct chunk_to_sort{
  8. std::list<T> data;
  9. std::promise<std::list<T>> promise;
  10. };
  11.  
  12. template<typename T>
  13. std::list<T> sort(std::list<T> &chunk_data){
  14. // <...>
  15.  
  16. std::list<T> result;
  17. result.splice(result.begin(), chunk_data, chunk_data.begin());
  18. T const &partition_val = *result.begin();
  19.  
  20. typename std::list<T>::iterator divide_point = std::partition(chunk_data.begin(),
  21. chunk_data.end(), [&](T const &val){return val<partition_val;});
  22.  
  23. chunk_to_sort<T> new_lower_chunk;
  24. new_lower_chunk.data.splice(new_lower_chunk.data.end(),
  25. chunk_data, chunk_data.begin(), divide_point);
  26.  
  27. // <...>
  28. }
  29.  
  30. int main() {
  31.  
  32. return 0;
  33. }
Success #stdin #stdout 0s 3464KB
stdin
Standard input is empty
stdout
Standard output is empty