C++ has had excellent support for concurrent programming ever since the C++ 11 language standard came out. Until then, threading was an affair that was handled by platform-specific libraries. The Microsoft Corporation had its own threading libraries, and other platforms (GNU Linux/macOS X) supported the POSIX threading model. A threading mechanism as part of the language has helped C++ programmers write portable code that runs on multiple platforms.
The original C++ standard was published in 1998, and the language design committee firmly believed that threading, filesystems, GUI libraries, and so on are better left to the platform-specific libraries. Herb Sutter published an influential article in the Dr. Dobbs Journal titled, The Free Lunch Is Over, where he advocated programming techniques to exploit multiple cores available in the processors of those days. While writing parallel code, functional programming models are well-suited...