Let's go ahead and compile the program with the following command:
g++ main.cpp -o concurrency.exe -std=c++17 -lpthread
Observe how the concurrency.exe application works by launching concurrency.exe as shown ahead:

As you may have guessed, the output of this program is exactly the same as our previous version. But this version of our program makes use of promise and future objects, unlike the previous version that doesn't support message passing.