Beyond OpenMP in C++ and Rust: Taskflow, Rayon, Fork Union