Тема: Паралельне сортування з ranges::sort

Намагаюся посортувати вектор з випадковими числами ось так:

#include <iostream>
#include <cstdlib>
#include <chrono>
#include <algorithm>
#include <numeric>
#include <cmath>
#include <random>
#include <execution>

auto main() -> int
{
    auto start = std::chrono::system_clock::now();
    constexpr std::size_t amount { 10000000 };
    auto vec_float = std::vector<float>(amount);
    std::iota(vec_float.begin(), vec_float.end(), 0.F);
    std::ranges::transform(vec_float.begin(), vec_float.end(),
                           vec_float.begin(), std::sqrtf);
    std::shuffle(vec_float.begin(), vec_float.end(),
                 std::mt19937_64 { std::random_device {}() });
    std::ranges::sort(std::execution::par, vec_float);
    auto end = std::chrono::system_clock::now();
    auto time = std::chrono::duration_cast<std::chrono::seconds>(end - start);

    std::cout << "Time: " << time << " seconds\n";
    return EXIT_SUCCESS;
}

Видає помилку No matching function for call to object of type 'const __sort_fn' [ovl_no_viable_object_call].
Якщо використати просто sort, сортує нормально.
Якщо прибрати execution::par з ranges::sort, теж сортує нормально.

Не розумію, що не так.